chellow 1761056531.0.0__py3-none-any.whl → 1761300128.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of chellow might be problematic. Click here for more details.
- chellow/e/views.py +30 -15
- chellow/reports/report_channel_snags.py +8 -2
- chellow/templates/e/supplier_contract_edit.html +24 -36
- chellow/templates/e/supplier_rate_script_edit.html +28 -43
- {chellow-1761056531.0.0.dist-info → chellow-1761300128.0.0.dist-info}/METADATA +12 -14
- {chellow-1761056531.0.0.dist-info → chellow-1761300128.0.0.dist-info}/RECORD +7 -8
- chellow/commands.py +0 -52
- {chellow-1761056531.0.0.dist-info → chellow-1761300128.0.0.dist-info}/WHEEL +0 -0
chellow/e/views.py
CHANGED
|
@@ -1348,6 +1348,7 @@ def dc_contract_hh_imports_post(contract_id):
|
|
|
1348
1348
|
"dc_contract_hh_imports.html",
|
|
1349
1349
|
contract=contract,
|
|
1350
1350
|
processes=processes,
|
|
1351
|
+
parser_names=", ".join(chellow.e.hh_importer.extensions),
|
|
1351
1352
|
),
|
|
1352
1353
|
400,
|
|
1353
1354
|
)
|
|
@@ -5711,7 +5712,7 @@ def supplier_contract_edit_delete(contract_id):
|
|
|
5711
5712
|
contract = Contract.get_supplier_by_id(g.sess, contract_id)
|
|
5712
5713
|
contract.delete(g.sess)
|
|
5713
5714
|
g.sess.commit()
|
|
5714
|
-
return
|
|
5715
|
+
return hx_redirect("/supplier_contracts", 303)
|
|
5715
5716
|
except BadRequest as e:
|
|
5716
5717
|
g.sess.rollback()
|
|
5717
5718
|
description = e.description
|
|
@@ -5882,25 +5883,39 @@ def supplier_rate_script_edit_get(rate_script_id):
|
|
|
5882
5883
|
)
|
|
5883
5884
|
|
|
5884
5885
|
|
|
5886
|
+
@e.route("/supplier_rate_scripts/<int:rate_script_id>/edit", methods=["DELETE"])
|
|
5887
|
+
def supplier_rate_script_edit_delete(rate_script_id):
|
|
5888
|
+
try:
|
|
5889
|
+
rate_script = RateScript.get_supplier_by_id(g.sess, rate_script_id)
|
|
5890
|
+
contract = rate_script.contract
|
|
5891
|
+
contract.delete_rate_script(g.sess, rate_script)
|
|
5892
|
+
g.sess.commit()
|
|
5893
|
+
return hx_redirect(f"/supplier_contracts/{contract.id}", 303)
|
|
5894
|
+
except BadRequest as e:
|
|
5895
|
+
g.sess.rollback()
|
|
5896
|
+
flash(e.description)
|
|
5897
|
+
return make_response(
|
|
5898
|
+
render_template(
|
|
5899
|
+
"supplier_rate_script_edit.html", supplier_rate_script=rate_script
|
|
5900
|
+
),
|
|
5901
|
+
400,
|
|
5902
|
+
)
|
|
5903
|
+
|
|
5904
|
+
|
|
5885
5905
|
@e.route("/supplier_rate_scripts/<int:rate_script_id>/edit", methods=["POST"])
|
|
5886
5906
|
def supplier_rate_script_edit_post(rate_script_id):
|
|
5887
5907
|
try:
|
|
5888
5908
|
rate_script = RateScript.get_supplier_by_id(g.sess, rate_script_id)
|
|
5889
5909
|
contract = rate_script.contract
|
|
5890
|
-
|
|
5891
|
-
|
|
5892
|
-
|
|
5893
|
-
|
|
5894
|
-
|
|
5895
|
-
|
|
5896
|
-
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
contract.update_rate_script(
|
|
5900
|
-
g.sess, rate_script, start_date, finish_date, script
|
|
5901
|
-
)
|
|
5902
|
-
g.sess.commit()
|
|
5903
|
-
return chellow_redirect(f"/supplier_rate_scripts/{rate_script.id}", 303)
|
|
5910
|
+
script = req_zish("script")
|
|
5911
|
+
start_date = req_date("start")
|
|
5912
|
+
has_finished = req_bool("has_finished")
|
|
5913
|
+
finish_date = req_date("finish") if has_finished else None
|
|
5914
|
+
contract.update_rate_script(
|
|
5915
|
+
g.sess, rate_script, start_date, finish_date, script
|
|
5916
|
+
)
|
|
5917
|
+
g.sess.commit()
|
|
5918
|
+
return chellow_redirect(f"/supplier_rate_scripts/{rate_script.id}", 303)
|
|
5904
5919
|
except BadRequest as e:
|
|
5905
5920
|
g.sess.rollback()
|
|
5906
5921
|
flash(e.description)
|
|
@@ -5,7 +5,7 @@ import traceback
|
|
|
5
5
|
|
|
6
6
|
from dateutil.relativedelta import relativedelta
|
|
7
7
|
|
|
8
|
-
from flask import g, redirect, render_template
|
|
8
|
+
from flask import g, redirect, render_template, request
|
|
9
9
|
|
|
10
10
|
from sqlalchemy.orm import joinedload
|
|
11
11
|
from sqlalchemy.sql.expression import false, select, true
|
|
@@ -29,6 +29,7 @@ from chellow.utils import (
|
|
|
29
29
|
csv_make_val,
|
|
30
30
|
hh_before,
|
|
31
31
|
req_bool,
|
|
32
|
+
req_date,
|
|
32
33
|
req_int,
|
|
33
34
|
req_int_none,
|
|
34
35
|
req_str,
|
|
@@ -160,6 +161,7 @@ def content(
|
|
|
160
161
|
only_ongoing,
|
|
161
162
|
show_settlement,
|
|
162
163
|
days_long_hidden,
|
|
164
|
+
now,
|
|
163
165
|
):
|
|
164
166
|
f = writer = None
|
|
165
167
|
try:
|
|
@@ -192,7 +194,6 @@ def content(
|
|
|
192
194
|
)
|
|
193
195
|
writer.writerow(titles)
|
|
194
196
|
|
|
195
|
-
now = utc_datetime_now()
|
|
196
197
|
for snag_group in _make_rows(
|
|
197
198
|
sess,
|
|
198
199
|
now,
|
|
@@ -246,6 +247,10 @@ def do_get(sess):
|
|
|
246
247
|
show_settlement = req_str("show_settlement")
|
|
247
248
|
as_csv = req_bool("as_csv")
|
|
248
249
|
days_long_hidden = req_int_none("days_long_hidden")
|
|
250
|
+
if "now_year" in request.values:
|
|
251
|
+
now = req_date("now")
|
|
252
|
+
else:
|
|
253
|
+
now = utc_datetime_now()
|
|
249
254
|
|
|
250
255
|
if as_csv:
|
|
251
256
|
args = (
|
|
@@ -255,6 +260,7 @@ def do_get(sess):
|
|
|
255
260
|
g.user.id,
|
|
256
261
|
only_ongoing,
|
|
257
262
|
show_settlement,
|
|
263
|
+
now,
|
|
258
264
|
)
|
|
259
265
|
threading.Thread(target=content, args=args).start()
|
|
260
266
|
return redirect("/downloads", 303)
|
|
@@ -12,41 +12,29 @@
|
|
|
12
12
|
|
|
13
13
|
{% block content %}
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
<
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
{% endfor %}
|
|
34
|
-
</select>
|
|
35
|
-
<label>Name</label>
|
|
36
|
-
{{input_text('name', contract.name)}}
|
|
37
|
-
<label>Charge script</label>
|
|
38
|
-
{{input_textarea('charge_script', contract.charge_script, 40, 80)}}
|
|
39
|
-
<label>Properties</label>
|
|
40
|
-
{{input_textarea('properties', contract.properties, 20, 80)}}
|
|
41
|
-
<input type="submit" value="Update">
|
|
42
|
-
</fieldset>
|
|
43
|
-
</form>
|
|
15
|
+
<form method="post">
|
|
16
|
+
<fieldset>
|
|
17
|
+
<legend>Update Contract</legend>
|
|
18
|
+
<label>Party</label>
|
|
19
|
+
<select name="party_id">
|
|
20
|
+
{% for party in parties %}
|
|
21
|
+
{{ input_option('party_id', party.id, party.participant.code + ' : ' + party.name, contract.party.id) }}
|
|
22
|
+
{% endfor %}
|
|
23
|
+
</select>
|
|
24
|
+
<label>Name</label>
|
|
25
|
+
{{input_text('name', contract.name)}}
|
|
26
|
+
<label>Charge script</label>
|
|
27
|
+
{{input_textarea('charge_script', contract.charge_script, 40, 80, show_pos=True)}}
|
|
28
|
+
<label>Properties</label>
|
|
29
|
+
{{input_textarea('properties', contract.properties, 20, 80)}}
|
|
30
|
+
<input type="submit" value="Update">
|
|
31
|
+
</fieldset>
|
|
32
|
+
</form>
|
|
44
33
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
{% endif %}
|
|
34
|
+
<form hx-delete="/e/supplier_contracts/{{contract.id}}/edit" hx-confirm="Are you sure you want to delete this contract?">
|
|
35
|
+
<fieldset>
|
|
36
|
+
<legend>Delete this contract</legend>
|
|
37
|
+
<input type="submit" name="delete" value="Delete">
|
|
38
|
+
</fieldset>
|
|
39
|
+
</form>
|
|
52
40
|
{% endblock %}
|
|
@@ -14,52 +14,37 @@
|
|
|
14
14
|
{% endblock %}
|
|
15
15
|
|
|
16
16
|
{% block content %}
|
|
17
|
-
{
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
action="/e/supplier_rate_scripts/{{supplier_rate_script.id}}/edit">
|
|
21
|
-
<fieldset>
|
|
22
|
-
<legend>Are you sure you want to delete this rate script?</legend>
|
|
23
|
-
<input type="submit" name="delete" value="Delete">
|
|
24
|
-
<a href="/supplier_rate_scripts/{{supplier_rate_script.id}}/edit">Cancel</a>
|
|
25
|
-
</fieldset>
|
|
26
|
-
</form>
|
|
27
|
-
|
|
28
|
-
{% else %}
|
|
29
|
-
|
|
30
|
-
<form action="" method="post">
|
|
17
|
+
<form action="/e/supplier_rate_scripts/{{supplier_rate_script.id}}/edit" method="post">
|
|
18
|
+
<fieldset>
|
|
19
|
+
<legend>Update Rate Script</legend>
|
|
31
20
|
<fieldset>
|
|
32
|
-
<legend>
|
|
33
|
-
|
|
34
|
-
<legend>Start date</legend>
|
|
35
|
-
{{ input_date('start', supplier_rate_script.start_date) }}
|
|
36
|
-
</fieldset>
|
|
37
|
-
<fieldset>
|
|
38
|
-
<legend>Finish date</legend>
|
|
39
|
-
<label>
|
|
40
|
-
Ended?
|
|
41
|
-
{{input_checkbox('has_finished', supplier_rate_script.finish_date != None)}}
|
|
42
|
-
</label>
|
|
43
|
-
{{ input_date('finish', supplier_rate_script.finish_date) }}
|
|
44
|
-
</fieldset>
|
|
45
|
-
<label>Script</label>
|
|
46
|
-
{{ input_textarea(
|
|
47
|
-
'script', supplier_rate_script.script, 40, 80, show_pos=True) }}
|
|
48
|
-
<input type="submit" value="Update">
|
|
21
|
+
<legend>Start date</legend>
|
|
22
|
+
{{ input_date('start', supplier_rate_script.start_date) }}
|
|
49
23
|
</fieldset>
|
|
50
|
-
</form>
|
|
51
|
-
|
|
52
|
-
{% if rate_script_example %}
|
|
53
|
-
<h4>Example</h4>
|
|
54
|
-
<pre>{{rate_script_example}}</pre>
|
|
55
|
-
{% endif %}
|
|
56
|
-
|
|
57
|
-
<form>
|
|
58
24
|
<fieldset>
|
|
59
|
-
<legend>
|
|
60
|
-
<
|
|
25
|
+
<legend>Finish date</legend>
|
|
26
|
+
<label>
|
|
27
|
+
Ended?
|
|
28
|
+
{{input_checkbox('has_finished', supplier_rate_script.finish_date != None)}}
|
|
29
|
+
</label>
|
|
30
|
+
{{ input_date('finish', supplier_rate_script.finish_date) }}
|
|
61
31
|
</fieldset>
|
|
62
|
-
|
|
63
|
-
|
|
32
|
+
<label>Script</label>
|
|
33
|
+
{{ input_textarea(
|
|
34
|
+
'script', supplier_rate_script.script, 40, 80, show_pos=True) }}
|
|
35
|
+
<input type="submit" value="Update">
|
|
36
|
+
</fieldset>
|
|
37
|
+
</form>
|
|
38
|
+
|
|
39
|
+
{% if rate_script_example %}
|
|
40
|
+
<h4>Example</h4>
|
|
41
|
+
<pre>{{rate_script_example}}</pre>
|
|
64
42
|
{% endif %}
|
|
43
|
+
|
|
44
|
+
<form hx-delete="/e/supplier_rate_scripts/{{supplier_rate_script.id}}/edit" hx-confirm="Are you sure you want to delete this rate script?">
|
|
45
|
+
<fieldset>
|
|
46
|
+
<legend>Delete this Rate Script</legend>
|
|
47
|
+
<input type="submit" name="delete" value="Delete">
|
|
48
|
+
</fieldset>
|
|
49
|
+
</form>
|
|
65
50
|
{% endblock %}
|
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: chellow
|
|
3
|
-
Version:
|
|
3
|
+
Version: 1761300128.0.0
|
|
4
4
|
Summary: Web Application for checking UK energy bills.
|
|
5
5
|
Project-URL: Homepage, https://github.com/WessexWater/chellow
|
|
6
6
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
7
7
|
Classifier: Operating System :: OS Independent
|
|
8
8
|
Classifier: Programming Language :: Python :: 3
|
|
9
9
|
Requires-Python: >=3.11
|
|
10
|
-
Requires-Dist: flask-restx==1.3.
|
|
11
|
-
Requires-Dist: flask==3.1.
|
|
12
|
-
Requires-Dist: jsonschema==4.17.3
|
|
10
|
+
Requires-Dist: flask-restx==1.3.2
|
|
11
|
+
Requires-Dist: flask==3.1.2
|
|
13
12
|
Requires-Dist: odio==0.0.23
|
|
14
13
|
Requires-Dist: openpyxl==3.1.5
|
|
15
|
-
Requires-Dist: paramiko==
|
|
16
|
-
Requires-Dist: pep3143daemon==0.1.0
|
|
14
|
+
Requires-Dist: paramiko==4.0.0
|
|
17
15
|
Requires-Dist: pg8000==1.31.5
|
|
18
16
|
Requires-Dist: pip>=9.0.1
|
|
19
|
-
Requires-Dist: psutil==
|
|
20
|
-
Requires-Dist: pympler==1.
|
|
21
|
-
Requires-Dist: pypdf==6.
|
|
17
|
+
Requires-Dist: psutil==7.1.1
|
|
18
|
+
Requires-Dist: pympler==1.1
|
|
19
|
+
Requires-Dist: pypdf==6.1.3
|
|
22
20
|
Requires-Dist: python-dateutil==2.8.2
|
|
23
|
-
Requires-Dist: pytz==
|
|
24
|
-
Requires-Dist: requests==2.32.
|
|
25
|
-
Requires-Dist: sqlalchemy==2.0.
|
|
26
|
-
Requires-Dist: waitress==3.0.
|
|
27
|
-
Requires-Dist: xlrd==2.0.
|
|
21
|
+
Requires-Dist: pytz==2025.2
|
|
22
|
+
Requires-Dist: requests==2.32.5
|
|
23
|
+
Requires-Dist: sqlalchemy==2.0.44
|
|
24
|
+
Requires-Dist: waitress==3.0.2
|
|
25
|
+
Requires-Dist: xlrd==2.0.2
|
|
28
26
|
Requires-Dist: zish==0.1.12
|
|
29
27
|
Description-Content-Type: text/markdown
|
|
30
28
|
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
chellow/__init__.py,sha256=9aoSbGmHCIHwzI_c_TLSg5CeKwqAq0I6kKaMvTrTMqg,10936
|
|
2
2
|
chellow/api.py,sha256=mk17TfweR76DPFC8lX2SArTjai6y6YshASxqO1w-_-s,11036
|
|
3
3
|
chellow/bank_holidays.py,sha256=T_utYMwe_g1dz5X-aOTdIPryg49SvB7QsWM1yphlqG8,4423
|
|
4
|
-
chellow/commands.py,sha256=ESBe9ZWj1c3vdZgqMZ9gFvYAB3hRag2R1PzOwuw9yFo,1302
|
|
5
4
|
chellow/dloads.py,sha256=sNAPMe4LeHqfisEubGXvraDsUS0F-ujI3WG0Md8DywM,5565
|
|
6
5
|
chellow/edi_lib.py,sha256=Lq70TUJuogoP5KGrphzUEUfyfgftEclg_iA3mpNAaDI,51324
|
|
7
6
|
chellow/fake_batch_updater.py,sha256=khAmvSUn9qN04w8C92kRg1UeyQvfLztE7QXv9tUz6nE,11611
|
|
@@ -45,7 +44,7 @@ chellow/e/system_price.py,sha256=6w5J7bzwFAZubE2zdOFRiS8IIrVP8hkoIOaG2yCt-Ic,623
|
|
|
45
44
|
chellow/e/tlms.py,sha256=pyL32hPiYd09FbpXVMnBjHsWFEQHs-Az945V7EShGiY,9116
|
|
46
45
|
chellow/e/tnuos.py,sha256=NBmc-f3oezrl4gviAKobljHfICTpBKxxxEGBGJi_lRk,4927
|
|
47
46
|
chellow/e/triad.py,sha256=uQIngSrz8irBXQ0Rp_s8nAUzu-y2Ms7aj4B38_Ff8y8,13720
|
|
48
|
-
chellow/e/views.py,sha256=
|
|
47
|
+
chellow/e/views.py,sha256=T2ETJT92bW3BdUGXPuvbIBx6RHh1agyEiQOv-DICtyk,234747
|
|
49
48
|
chellow/e/bill_parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
49
|
chellow/e/bill_parsers/activity_mop_stark_xlsx.py,sha256=hcbjxqLOe7qkDjS7enCpmfyGwm3d-pq3u5VQIaUmVTw,3796
|
|
51
50
|
chellow/e/bill_parsers/annual_mop_stark_xlsx.py,sha256=yoEGQS0qcrv3TWFfxELIIi8f1CyKcIzh0xVaPoz2w2s,4191
|
|
@@ -100,7 +99,7 @@ chellow/reports/report_87.py,sha256=udzbCuXcckWD-OHmfJCT6bwg_paYhm4vfDWlL8WM-jA,
|
|
|
100
99
|
chellow/reports/report_asset_comparison.py,sha256=Cl2NgvbclqhOVvKuUu3sajTVO2JupMfzK3bV0_K8eNs,6077
|
|
101
100
|
chellow/reports/report_batches.py,sha256=MoCv2dE-JgaJzaMjMA-kZrPkYR13uDoXer5UuF12OYc,4757
|
|
102
101
|
chellow/reports/report_bills.py,sha256=LP7XDxzO0Fp10c8xDE67e4tHTEc7nN74ESQBy762Nx4,3401
|
|
103
|
-
chellow/reports/report_channel_snags.py,sha256=
|
|
102
|
+
chellow/reports/report_channel_snags.py,sha256=qBVmw0q588izKJr6dDOn7jjdFvSa-Ldd2uqtVETqijY,8748
|
|
104
103
|
chellow/reports/report_csv_llfcs.py,sha256=mMB06b6Jems5kcQU4H4Le_fyKgVr8THP8BCx3pkvg5E,1903
|
|
105
104
|
chellow/reports/report_csv_site_hh_data.py,sha256=ik0OkGVo1bfTXLdcT3gPUHnxSkSdorzZheP3qgnOR5c,4331
|
|
106
105
|
chellow/reports/report_csv_site_snags.py,sha256=AuAy6vjL0g7vwPPAZhBqxOyITL9_jnyFj012MnUcxxk,2627
|
|
@@ -336,14 +335,14 @@ chellow/templates/e/supplier_bill_import.html,sha256=RXvRkKoH-s1F_Wz---WygiNCmAm
|
|
|
336
335
|
chellow/templates/e/supplier_bill_import_contract.html,sha256=HySas6Q-1Pi6aZaEZNhKeK4c3d8MFbBIMh0PJ4zvKWQ,3117
|
|
337
336
|
chellow/templates/e/supplier_contract.html,sha256=jz3_2q5HuJaxQhJPaM_dcukigYyI6UmhVYC6nPHY7Ng,3243
|
|
338
337
|
chellow/templates/e/supplier_contract_add.html,sha256=gsozEtF24lzYi_Bb4LTenvh62tCt7dQ4CwaIz7rFck4,899
|
|
339
|
-
chellow/templates/e/supplier_contract_edit.html,sha256=
|
|
338
|
+
chellow/templates/e/supplier_contract_edit.html,sha256=PciQ91n1PB2-Z8vK4HIRiAc4tH3zwV17tnA-T6sRJu0,1226
|
|
340
339
|
chellow/templates/e/supplier_contracts.html,sha256=VwWD4q88Fynz7vioFSAsyH6RR_1SyQQl6bQwzL-W1m0,1508
|
|
341
340
|
chellow/templates/e/supplier_element.html,sha256=XQXvSVFISC3ZwCRurfpZbppFJgMhzbhqcwDYFT50bok,1370
|
|
342
341
|
chellow/templates/e/supplier_element_add.html,sha256=gSdn3X2BPUclPwbsuvQC-yIejaLykKFhJl_sC1kLB4s,1220
|
|
343
342
|
chellow/templates/e/supplier_element_edit.html,sha256=NrW51twKITht7w4qi8xrxivU3h-jcGpYySBuxq-L5XU,1846
|
|
344
343
|
chellow/templates/e/supplier_rate_script.html,sha256=tjWeCUAgNip3VLHzbXqe19Msiasys3Wm5Vra936qJjI,1245
|
|
345
344
|
chellow/templates/e/supplier_rate_script_add.html,sha256=Yf2LZEIHbL7qT6oxBCtPf0ZX7vJsSo_ZeOKJhJoVh3o,690
|
|
346
|
-
chellow/templates/e/supplier_rate_script_edit.html,sha256=
|
|
345
|
+
chellow/templates/e/supplier_rate_script_edit.html,sha256=Nt2bg78DCXiQpl2SAxIWjJx2nqljOtcqKVDkUnmO9_k,1695
|
|
347
346
|
chellow/templates/e/supply.html,sha256=kFyYPIzMgRZz7tHY_TfmjYzUkc1zXyaJses6X372Ozg,8427
|
|
348
347
|
chellow/templates/e/supply_edit.html,sha256=2BRGU35nb0ZpUHKCi_fgAPMU6SlHI7ve3_Ne8LXHtms,2333
|
|
349
348
|
chellow/templates/e/supply_eras.html,sha256=5lB7_oC-sTWRQoASuPgBWj5XSZa9ajR0s6V6xKHvf6E,19996
|
|
@@ -401,6 +400,6 @@ chellow/templates/g/supply_notes.html,sha256=6epNmZ3NKdXZz27fvmRUGeffg_oc1kmwuBe
|
|
|
401
400
|
chellow/templates/g/unit.html,sha256=KouNVU0-i84afANkLQ_heJ0uDfJ9H5A05PuLqb8iCN8,438
|
|
402
401
|
chellow/templates/g/units.html,sha256=p5Nd-lAIboKPEOO6N451hx1bcKxMg4BDODnZ-43MmJc,441
|
|
403
402
|
chellow/templates/reports/channel_snags.html,sha256=_aAgFgMlTkK2HuKFU8YisAIcUYfg6Hqhgyf5MZpdK8c,2629
|
|
404
|
-
chellow-
|
|
405
|
-
chellow-
|
|
406
|
-
chellow-
|
|
403
|
+
chellow-1761300128.0.0.dist-info/METADATA,sha256=P8R_gGwMFw4jdwYKRJX9X0ptfSwWCzDXCQBklJ9Arfo,12428
|
|
404
|
+
chellow-1761300128.0.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
405
|
+
chellow-1761300128.0.0.dist-info/RECORD,,
|
chellow/commands.py
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import argparse
|
|
2
|
-
import os.path
|
|
3
|
-
import signal
|
|
4
|
-
import sys
|
|
5
|
-
import time
|
|
6
|
-
from os import environ
|
|
7
|
-
|
|
8
|
-
from pep3143daemon import DaemonContext, PidFile
|
|
9
|
-
|
|
10
|
-
import waitress
|
|
11
|
-
|
|
12
|
-
from chellow import create_app
|
|
13
|
-
|
|
14
|
-
app = create_app()
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def chellow_start(daemon):
|
|
18
|
-
chellow_port = environ["CHELLOW_PORT"] if "CHELLOW_PORT" in environ else 80
|
|
19
|
-
daemon.open()
|
|
20
|
-
waitress.serve(app, host="0.0.0.0", port=chellow_port)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def chellow_stop(pidfile_path):
|
|
24
|
-
with open(pidfile_path) as pidfile:
|
|
25
|
-
pid = int(pidfile.read())
|
|
26
|
-
os.kill(pid, signal.SIGTERM)
|
|
27
|
-
while os.path.exists(pidfile_path):
|
|
28
|
-
time.sleep(1)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
def chellow_command():
|
|
32
|
-
parser = argparse.ArgumentParser()
|
|
33
|
-
parser.add_argument("action", choices=["start", "stop", "restart"])
|
|
34
|
-
args = parser.parse_args()
|
|
35
|
-
|
|
36
|
-
try:
|
|
37
|
-
os.makedirs(app.instance_path)
|
|
38
|
-
except BaseException:
|
|
39
|
-
pass
|
|
40
|
-
pidfile_path = os.path.join(app.instance_path, "chellow.pid")
|
|
41
|
-
pidfile = PidFile(pidfile_path)
|
|
42
|
-
daemon = DaemonContext(
|
|
43
|
-
pidfile=pidfile, stdin=sys.stdin, stderr=sys.stderr, stdout=sys.stdout
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
if args.action == "start":
|
|
47
|
-
chellow_start(daemon)
|
|
48
|
-
elif args.action == "stop":
|
|
49
|
-
chellow_stop(pidfile_path)
|
|
50
|
-
elif args.action == "restart":
|
|
51
|
-
chellow_stop(pidfile_path)
|
|
52
|
-
chellow_start(daemon)
|
|
File without changes
|