Task-315 Added tab for viewing the datasets used for training the models and reworked the layout of the UI
Browse files- Pipfile +3 -1
- Pipfile.lock +290 -114
- app.py +186 -67
- config.py +0 -23
- config.toml +4 -0
- scripts/__init__.py +1 -1
- scripts/config.py +76 -0
- setup.sh +32 -0
Pipfile
CHANGED
@@ -10,13 +10,15 @@ numpy = "*"
|
|
10 |
st-annotated-text = "*"
|
11 |
transformers = "*"
|
12 |
torch = "*"
|
13 |
-
huggingface-hub = "*"
|
14 |
joblib = "*"
|
15 |
nltk = "*"
|
16 |
htbuilder = "*"
|
17 |
nest-asyncio = "*"
|
18 |
mkdocs = "*"
|
19 |
mkdocstrings-python = "*"
|
|
|
|
|
|
|
20 |
|
21 |
[dev-packages]
|
22 |
|
|
|
10 |
st-annotated-text = "*"
|
11 |
transformers = "*"
|
12 |
torch = "*"
|
|
|
13 |
joblib = "*"
|
14 |
nltk = "*"
|
15 |
htbuilder = "*"
|
16 |
nest-asyncio = "*"
|
17 |
mkdocs = "*"
|
18 |
mkdocstrings-python = "*"
|
19 |
+
typer = "*"
|
20 |
+
huggingface-hub = "*"
|
21 |
+
loguru = "*"
|
22 |
|
23 |
[dev-packages]
|
24 |
|
Pipfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
-
"sha256": "
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
@@ -211,11 +211,11 @@
|
|
211 |
},
|
212 |
"griffe": {
|
213 |
"hashes": [
|
214 |
-
"sha256:
|
215 |
-
"sha256:
|
216 |
],
|
217 |
"markers": "python_version >= '3.9'",
|
218 |
-
"version": "==1.
|
219 |
},
|
220 |
"htbuilder": {
|
221 |
"hashes": [
|
@@ -275,6 +275,22 @@
|
|
275 |
"markers": "python_version >= '3.9'",
|
276 |
"version": "==2024.10.1"
|
277 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
"markdown": {
|
279 |
"hashes": [
|
280 |
"sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2",
|
@@ -283,6 +299,14 @@
|
|
283 |
"markers": "python_version >= '3.8'",
|
284 |
"version": "==3.7"
|
285 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
286 |
"markupsafe": {
|
287 |
"hashes": [
|
288 |
"sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4",
|
@@ -350,6 +374,14 @@
|
|
350 |
"markers": "python_version >= '3.9'",
|
351 |
"version": "==3.0.2"
|
352 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
353 |
"mergedeep": {
|
354 |
"hashes": [
|
355 |
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
|
@@ -726,6 +758,14 @@
|
|
726 |
"markers": "python_version >= '3.8'",
|
727 |
"version": "==0.9.1"
|
728 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
729 |
"pymdown-extensions": {
|
730 |
"hashes": [
|
731 |
"sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9",
|
@@ -826,8 +866,100 @@
|
|
826 |
},
|
827 |
"regex": {
|
828 |
"hashes": [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
829 |
"sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519",
|
830 |
-
"sha256:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
831 |
],
|
832 |
"markers": "python_version >= '3.8'",
|
833 |
"version": "==2024.11.6"
|
@@ -840,114 +972,133 @@
|
|
840 |
"markers": "python_version >= '3.8'",
|
841 |
"version": "==2.32.3"
|
842 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
843 |
"rpds-py": {
|
844 |
"hashes": [
|
845 |
-
"sha256:
|
846 |
-
"sha256:
|
847 |
-
"sha256:
|
848 |
-
"sha256:
|
849 |
-
"sha256:
|
850 |
-
"sha256:
|
851 |
-
"sha256:
|
852 |
-
"sha256:
|
853 |
-
"sha256:
|
854 |
-
"sha256:
|
855 |
-
"sha256:
|
856 |
-
"sha256:
|
857 |
-
"sha256:
|
858 |
-
"sha256:
|
859 |
-
"sha256:
|
860 |
-
"sha256:
|
861 |
-
"sha256:
|
862 |
-
"sha256:
|
863 |
-
"sha256:
|
864 |
-
"sha256:
|
865 |
-
"sha256:
|
866 |
-
"sha256:
|
867 |
-
"sha256:
|
868 |
-
"sha256:
|
869 |
-
"sha256:
|
870 |
-
"sha256:
|
871 |
-
"sha256:
|
872 |
-
"sha256:
|
873 |
-
"sha256:
|
874 |
-
"sha256:
|
875 |
-
"sha256:
|
876 |
-
"sha256:
|
877 |
-
"sha256:
|
878 |
-
"sha256:
|
879 |
-
"sha256:
|
880 |
-
"sha256:
|
881 |
-
"sha256:
|
882 |
-
"sha256:
|
883 |
-
"sha256:
|
884 |
-
"sha256:
|
885 |
-
"sha256:
|
886 |
-
"sha256:
|
887 |
-
"sha256:
|
888 |
-
"sha256:
|
889 |
-
"sha256:
|
890 |
-
"sha256:
|
891 |
-
"sha256:
|
892 |
-
"sha256:
|
893 |
-
"sha256:
|
894 |
-
"sha256:
|
895 |
-
"sha256:
|
896 |
-
"sha256:
|
897 |
-
"sha256:
|
898 |
-
"sha256:
|
899 |
-
"sha256:
|
900 |
-
"sha256:
|
901 |
-
"sha256:
|
902 |
-
"sha256:
|
903 |
-
"sha256:
|
904 |
-
"sha256:
|
905 |
-
"sha256:
|
906 |
-
"sha256:
|
907 |
-
"sha256:
|
908 |
-
"sha256:
|
909 |
-
"sha256:
|
910 |
-
"sha256:
|
911 |
-
"sha256:
|
912 |
-
"sha256:
|
913 |
-
"sha256:
|
914 |
-
"sha256:
|
915 |
-
"sha256:
|
916 |
-
"sha256:
|
917 |
-
"sha256:
|
918 |
-
"sha256:
|
919 |
-
"sha256:
|
920 |
-
"sha256:
|
921 |
-
"sha256:
|
922 |
-
"sha256:
|
923 |
-
"sha256:
|
924 |
-
"sha256:
|
925 |
-
"sha256:
|
926 |
-
"sha256:
|
927 |
-
"sha256:
|
928 |
-
"sha256:
|
929 |
-
"sha256:
|
930 |
-
"sha256:
|
931 |
-
"sha256:
|
932 |
-
"sha256:
|
933 |
-
"sha256:
|
934 |
-
"sha256:
|
935 |
-
"sha256:
|
936 |
-
"sha256:
|
937 |
-
"sha256:
|
938 |
-
"sha256:
|
939 |
-
"sha256:
|
940 |
-
"sha256:
|
941 |
-
"sha256:
|
942 |
-
"sha256:
|
943 |
-
"sha256:
|
944 |
-
"sha256:
|
945 |
-
"sha256:
|
946 |
-
"sha256:
|
947 |
-
"sha256:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
948 |
],
|
949 |
"markers": "python_version >= '3.9'",
|
950 |
-
"version": "==0.
|
951 |
},
|
952 |
"safetensors": {
|
953 |
"hashes": [
|
@@ -975,9 +1126,17 @@
|
|
975 |
"sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54",
|
976 |
"sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8"
|
977 |
],
|
978 |
-
"markers": "python_version >= '3.
|
979 |
"version": "==78.1.0"
|
980 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
981 |
"six": {
|
982 |
"hashes": [
|
983 |
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
@@ -1017,7 +1176,7 @@
|
|
1017 |
"sha256:9cebf7e04ff162015ce31c9c6c9144daa34a93bd082f54fd8f12deca4f47515f",
|
1018 |
"sha256:db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8"
|
1019 |
],
|
1020 |
-
"markers": "python_version >= '3.
|
1021 |
"version": "==1.13.1"
|
1022 |
},
|
1023 |
"tenacity": {
|
@@ -1111,12 +1270,21 @@
|
|
1111 |
},
|
1112 |
"transformers": {
|
1113 |
"hashes": [
|
1114 |
-
"sha256:
|
1115 |
-
"sha256:
|
1116 |
],
|
1117 |
"index": "pypi",
|
1118 |
"markers": "python_full_version >= '3.9.0'",
|
1119 |
-
"version": "==4.50.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1120 |
},
|
1121 |
"typing-extensions": {
|
1122 |
"hashes": [
|
@@ -1177,6 +1345,14 @@
|
|
1177 |
],
|
1178 |
"markers": "python_version >= '3.9'",
|
1179 |
"version": "==6.0.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1180 |
}
|
1181 |
},
|
1182 |
"develop": {}
|
|
|
1 |
{
|
2 |
"_meta": {
|
3 |
"hash": {
|
4 |
+
"sha256": "6dce351ecab86056ef14cdf56db27855a804f8a6f1ccef00bffcd1cf3d7686c2"
|
5 |
},
|
6 |
"pipfile-spec": 6,
|
7 |
"requires": {
|
|
|
211 |
},
|
212 |
"griffe": {
|
213 |
"hashes": [
|
214 |
+
"sha256:6b44efc53a3f290d42c4da521f42235177b3bd107877dd55955318a37930c572",
|
215 |
+
"sha256:72e9c1593c7af92a387906293fc4a318c2e8e8aef501c64678c809794b4bdca4"
|
216 |
],
|
217 |
"markers": "python_version >= '3.9'",
|
218 |
+
"version": "==1.7.0"
|
219 |
},
|
220 |
"htbuilder": {
|
221 |
"hashes": [
|
|
|
275 |
"markers": "python_version >= '3.9'",
|
276 |
"version": "==2024.10.1"
|
277 |
},
|
278 |
+
"logger": {
|
279 |
+
"hashes": [
|
280 |
+
"sha256:4ecac57133c6376fa215f0fe6b4dc4d60e4d1ad8be005cab4e8a702df682f8b3"
|
281 |
+
],
|
282 |
+
"index": "pypi",
|
283 |
+
"version": "==1.4"
|
284 |
+
},
|
285 |
+
"loguru": {
|
286 |
+
"hashes": [
|
287 |
+
"sha256:19480589e77d47b8d85b2c827ad95d49bf31b0dcde16593892eb51dd18706eb6",
|
288 |
+
"sha256:31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c"
|
289 |
+
],
|
290 |
+
"index": "pypi",
|
291 |
+
"markers": "python_version >= '3.5' and python_version < '4.0'",
|
292 |
+
"version": "==0.7.3"
|
293 |
+
},
|
294 |
"markdown": {
|
295 |
"hashes": [
|
296 |
"sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2",
|
|
|
299 |
"markers": "python_version >= '3.8'",
|
300 |
"version": "==3.7"
|
301 |
},
|
302 |
+
"markdown-it-py": {
|
303 |
+
"hashes": [
|
304 |
+
"sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1",
|
305 |
+
"sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"
|
306 |
+
],
|
307 |
+
"markers": "python_version >= '3.8'",
|
308 |
+
"version": "==3.0.0"
|
309 |
+
},
|
310 |
"markupsafe": {
|
311 |
"hashes": [
|
312 |
"sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4",
|
|
|
374 |
"markers": "python_version >= '3.9'",
|
375 |
"version": "==3.0.2"
|
376 |
},
|
377 |
+
"mdurl": {
|
378 |
+
"hashes": [
|
379 |
+
"sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8",
|
380 |
+
"sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"
|
381 |
+
],
|
382 |
+
"markers": "python_version >= '3.7'",
|
383 |
+
"version": "==0.1.2"
|
384 |
+
},
|
385 |
"mergedeep": {
|
386 |
"hashes": [
|
387 |
"sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8",
|
|
|
758 |
"markers": "python_version >= '3.8'",
|
759 |
"version": "==0.9.1"
|
760 |
},
|
761 |
+
"pygments": {
|
762 |
+
"hashes": [
|
763 |
+
"sha256:61c16d2a8576dc0649d9f39e089b5f02bcd27fba10d8fb4dcc28173f7a45151f",
|
764 |
+
"sha256:9ea1544ad55cecf4b8242fab6dd35a93bbce657034b0611ee383099054ab6d8c"
|
765 |
+
],
|
766 |
+
"markers": "python_version >= '3.8'",
|
767 |
+
"version": "==2.19.1"
|
768 |
+
},
|
769 |
"pymdown-extensions": {
|
770 |
"hashes": [
|
771 |
"sha256:05e0bee73d64b9c71a4ae17c72abc2f700e8bc8403755a00580b49a4e9f189e9",
|
|
|
866 |
},
|
867 |
"regex": {
|
868 |
"hashes": [
|
869 |
+
"sha256:02a02d2bb04fec86ad61f3ea7f49c015a0681bf76abb9857f945d26159d2968c",
|
870 |
+
"sha256:02e28184be537f0e75c1f9b2f8847dc51e08e6e171c6bde130b2687e0c33cf60",
|
871 |
+
"sha256:040df6fe1a5504eb0f04f048e6d09cd7c7110fef851d7c567a6b6e09942feb7d",
|
872 |
+
"sha256:068376da5a7e4da51968ce4c122a7cd31afaaec4fccc7856c92f63876e57b51d",
|
873 |
+
"sha256:06eb1be98df10e81ebaded73fcd51989dcf534e3c753466e4b60c4697a003b67",
|
874 |
+
"sha256:072623554418a9911446278f16ecb398fb3b540147a7828c06e2011fa531e773",
|
875 |
+
"sha256:086a27a0b4ca227941700e0b31425e7a28ef1ae8e5e05a33826e17e47fbfdba0",
|
876 |
+
"sha256:08986dce1339bc932923e7d1232ce9881499a0e02925f7402fb7c982515419ef",
|
877 |
+
"sha256:0a86e7eeca091c09e021db8eb72d54751e527fa47b8d5787caf96d9831bd02ad",
|
878 |
+
"sha256:0c32f75920cf99fe6b6c539c399a4a128452eaf1af27f39bce8909c9a3fd8cbe",
|
879 |
+
"sha256:0d7f453dca13f40a02b79636a339c5b62b670141e63efd511d3f8f73fba162b3",
|
880 |
+
"sha256:1062b39a0a2b75a9c694f7a08e7183a80c63c0d62b301418ffd9c35f55aaa114",
|
881 |
+
"sha256:13291b39131e2d002a7940fb176e120bec5145f3aeb7621be6534e46251912c4",
|
882 |
+
"sha256:149f5008d286636e48cd0b1dd65018548944e495b0265b45e1bffecce1ef7f39",
|
883 |
+
"sha256:164d8b7b3b4bcb2068b97428060b2a53be050085ef94eca7f240e7947f1b080e",
|
884 |
+
"sha256:167ed4852351d8a750da48712c3930b031f6efdaa0f22fa1933716bfcd6bf4a3",
|
885 |
+
"sha256:1c4de13f06a0d54fa0d5ab1b7138bfa0d883220965a29616e3ea61b35d5f5fc7",
|
886 |
+
"sha256:202eb32e89f60fc147a41e55cb086db2a3f8cb82f9a9a88440dcfc5d37faae8d",
|
887 |
+
"sha256:220902c3c5cc6af55d4fe19ead504de80eb91f786dc102fbd74894b1551f095e",
|
888 |
+
"sha256:2b3361af3198667e99927da8b84c1b010752fa4b1115ee30beaa332cabc3ef1a",
|
889 |
+
"sha256:2c89a8cc122b25ce6945f0423dc1352cb9593c68abd19223eebbd4e56612c5b7",
|
890 |
+
"sha256:2d548dafee61f06ebdb584080621f3e0c23fff312f0de1afc776e2a2ba99a74f",
|
891 |
+
"sha256:2e34b51b650b23ed3354b5a07aab37034d9f923db2a40519139af34f485f77d0",
|
892 |
+
"sha256:32f9a4c643baad4efa81d549c2aadefaeba12249b2adc5af541759237eee1c54",
|
893 |
+
"sha256:3a51ccc315653ba012774efca4f23d1d2a8a8f278a6072e29c7147eee7da446b",
|
894 |
+
"sha256:3cde6e9f2580eb1665965ce9bf17ff4952f34f5b126beb509fee8f4e994f143c",
|
895 |
+
"sha256:40291b1b89ca6ad8d3f2b82782cc33807f1406cf68c8d440861da6304d8ffbbd",
|
896 |
+
"sha256:41758407fc32d5c3c5de163888068cfee69cb4c2be844e7ac517a52770f9af57",
|
897 |
+
"sha256:4181b814e56078e9b00427ca358ec44333765f5ca1b45597ec7446d3a1ef6e34",
|
898 |
+
"sha256:4f51f88c126370dcec4908576c5a627220da6c09d0bff31cfa89f2523843316d",
|
899 |
+
"sha256:50153825ee016b91549962f970d6a4442fa106832e14c918acd1c8e479916c4f",
|
900 |
+
"sha256:5056b185ca113c88e18223183aa1a50e66507769c9640a6ff75859619d73957b",
|
901 |
+
"sha256:5071b2093e793357c9d8b2929dfc13ac5f0a6c650559503bb81189d0a3814519",
|
902 |
+
"sha256:525eab0b789891ac3be914d36893bdf972d483fe66551f79d3e27146191a37d4",
|
903 |
+
"sha256:52fb28f528778f184f870b7cf8f225f5eef0a8f6e3778529bdd40c7b3920796a",
|
904 |
+
"sha256:5478c6962ad548b54a591778e93cd7c456a7a29f8eca9c49e4f9a806dcc5d638",
|
905 |
+
"sha256:5670bce7b200273eee1840ef307bfa07cda90b38ae56e9a6ebcc9f50da9c469b",
|
906 |
+
"sha256:5704e174f8ccab2026bd2f1ab6c510345ae8eac818b613d7d73e785f1310f839",
|
907 |
+
"sha256:59dfe1ed21aea057a65c6b586afd2a945de04fc7db3de0a6e3ed5397ad491b07",
|
908 |
+
"sha256:5e7e351589da0850c125f1600a4c4ba3c722efefe16b297de54300f08d734fbf",
|
909 |
+
"sha256:63b13cfd72e9601125027202cad74995ab26921d8cd935c25f09c630436348ff",
|
910 |
+
"sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0",
|
911 |
+
"sha256:684d7a212682996d21ca12ef3c17353c021fe9de6049e19ac8481ec35574a70f",
|
912 |
+
"sha256:69ab78f848845569401469da20df3e081e6b5a11cb086de3eed1d48f5ed57c95",
|
913 |
+
"sha256:6f44ec28b1f858c98d3036ad5d7d0bfc568bdd7a74f9c24e25f41ef1ebfd81a4",
|
914 |
+
"sha256:70b7fa6606c2881c1db9479b0eaa11ed5dfa11c8d60a474ff0e095099f39d98e",
|
915 |
+
"sha256:764e71f22ab3b305e7f4c21f1a97e1526a25ebdd22513e251cf376760213da13",
|
916 |
"sha256:7ab159b063c52a0333c884e4679f8d7a85112ee3078fe3d9004b2dd875585519",
|
917 |
+
"sha256:805e6b60c54bf766b251e94526ebad60b7de0c70f70a4e6210ee2891acb70bf2",
|
918 |
+
"sha256:8447d2d39b5abe381419319f942de20b7ecd60ce86f16a23b0698f22e1b70008",
|
919 |
+
"sha256:86fddba590aad9208e2fa8b43b4c098bb0ec74f15718bb6a704e3c63e2cef3e9",
|
920 |
+
"sha256:89d75e7293d2b3e674db7d4d9b1bee7f8f3d1609428e293771d1a962617150cc",
|
921 |
+
"sha256:93c0b12d3d3bc25af4ebbf38f9ee780a487e8bf6954c115b9f015822d3bb8e48",
|
922 |
+
"sha256:94d87b689cdd831934fa3ce16cc15cd65748e6d689f5d2b8f4f4df2065c9fa20",
|
923 |
+
"sha256:9714398225f299aa85267fd222f7142fcb5c769e73d7733344efc46f2ef5cf89",
|
924 |
+
"sha256:982e6d21414e78e1f51cf595d7f321dcd14de1f2881c5dc6a6e23bbbbd68435e",
|
925 |
+
"sha256:997d6a487ff00807ba810e0f8332c18b4eb8d29463cfb7c820dc4b6e7562d0cf",
|
926 |
+
"sha256:a03e02f48cd1abbd9f3b7e3586d97c8f7a9721c436f51a5245b3b9483044480b",
|
927 |
+
"sha256:a36fdf2af13c2b14738f6e973aba563623cb77d753bbbd8d414d18bfaa3105dd",
|
928 |
+
"sha256:a6ba92c0bcdf96cbf43a12c717eae4bc98325ca3730f6b130ffa2e3c3c723d84",
|
929 |
+
"sha256:a7c2155f790e2fb448faed6dd241386719802296ec588a8b9051c1f5c481bc29",
|
930 |
+
"sha256:a93c194e2df18f7d264092dc8539b8ffb86b45b899ab976aa15d48214138e81b",
|
931 |
+
"sha256:abfa5080c374a76a251ba60683242bc17eeb2c9818d0d30117b4486be10c59d3",
|
932 |
+
"sha256:ac10f2c4184420d881a3475fb2c6f4d95d53a8d50209a2500723d831036f7c45",
|
933 |
+
"sha256:ad182d02e40de7459b73155deb8996bbd8e96852267879396fb274e8700190e3",
|
934 |
+
"sha256:b2837718570f95dd41675328e111345f9b7095d821bac435aac173ac80b19983",
|
935 |
+
"sha256:b489578720afb782f6ccf2840920f3a32e31ba28a4b162e13900c3e6bd3f930e",
|
936 |
+
"sha256:b583904576650166b3d920d2bcce13971f6f9e9a396c673187f49811b2769dc7",
|
937 |
+
"sha256:b85c2530be953a890eaffde05485238f07029600e8f098cdf1848d414a8b45e4",
|
938 |
+
"sha256:b97c1e0bd37c5cd7902e65f410779d39eeda155800b65fc4d04cc432efa9bc6e",
|
939 |
+
"sha256:ba9b72e5643641b7d41fa1f6d5abda2c9a263ae835b917348fc3c928182ad467",
|
940 |
+
"sha256:bb26437975da7dc36b7efad18aa9dd4ea569d2357ae6b783bf1118dabd9ea577",
|
941 |
+
"sha256:bb8f74f2f10dbf13a0be8de623ba4f9491faf58c24064f32b65679b021ed0001",
|
942 |
+
"sha256:bde01f35767c4a7899b7eb6e823b125a64de314a8ee9791367c9a34d56af18d0",
|
943 |
+
"sha256:bec9931dfb61ddd8ef2ebc05646293812cb6b16b60cf7c9511a832b6f1854b55",
|
944 |
+
"sha256:c36f9b6f5f8649bb251a5f3f66564438977b7ef8386a52460ae77e6070d309d9",
|
945 |
+
"sha256:cdf58d0e516ee426a48f7b2c03a332a4114420716d55769ff7108c37a09951bf",
|
946 |
+
"sha256:d1cee317bfc014c2419a76bcc87f071405e3966da434e03e13beb45f8aced1a6",
|
947 |
+
"sha256:d22326fcdef5e08c154280b71163ced384b428343ae16a5ab2b3354aed12436e",
|
948 |
+
"sha256:d3660c82f209655a06b587d55e723f0b813d3a7db2e32e5e7dc64ac2a9e86fde",
|
949 |
+
"sha256:da8f5fc57d1933de22a9e23eec290a0d8a5927a5370d24bda9a6abe50683fe62",
|
950 |
+
"sha256:df951c5f4a1b1910f1a99ff42c473ff60f8225baa1cdd3539fe2819d9543e9df",
|
951 |
+
"sha256:e5364a4502efca094731680e80009632ad6624084aff9a23ce8c8c6820de3e51",
|
952 |
+
"sha256:ea1bfda2f7162605f6e8178223576856b3d791109f15ea99a9f95c16a7636fb5",
|
953 |
+
"sha256:f02f93b92358ee3f78660e43b4b0091229260c5d5c408d17d60bf26b6c900e86",
|
954 |
+
"sha256:f056bf21105c2515c32372bbc057f43eb02aae2fda61052e2f7622c801f0b4e2",
|
955 |
+
"sha256:f1ac758ef6aebfc8943560194e9fd0fa18bcb34d89fd8bd2af18183afd8da3a2",
|
956 |
+
"sha256:f2a19f302cd1ce5dd01a9099aaa19cae6173306d1302a43b627f62e21cf18ac0",
|
957 |
+
"sha256:f654882311409afb1d780b940234208a252322c24a93b442ca714d119e68086c",
|
958 |
+
"sha256:f65557897fc977a44ab205ea871b690adaef6b9da6afda4790a2484b04293a5f",
|
959 |
+
"sha256:f9d1e379028e0fc2ae3654bac3cbbef81bf3fd571272a42d56c24007979bafb6",
|
960 |
+
"sha256:fdabbfc59f2c6edba2a6622c647b716e34e8e3867e0ab975412c5c2f79b82da2",
|
961 |
+
"sha256:fdd6028445d2460f33136c55eeb1f601ab06d74cb3347132e1c24250187500d9",
|
962 |
+
"sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"
|
963 |
],
|
964 |
"markers": "python_version >= '3.8'",
|
965 |
"version": "==2024.11.6"
|
|
|
972 |
"markers": "python_version >= '3.8'",
|
973 |
"version": "==2.32.3"
|
974 |
},
|
975 |
+
"rich": {
|
976 |
+
"hashes": [
|
977 |
+
"sha256:439594978a49a09530cff7ebc4b5c7103ef57baf48d5ea3184f21d9a2befa098",
|
978 |
+
"sha256:6049d5e6ec054bf2779ab3358186963bac2ea89175919d699e378b99738c2a90"
|
979 |
+
],
|
980 |
+
"markers": "python_full_version >= '3.8.0'",
|
981 |
+
"version": "==13.9.4"
|
982 |
+
},
|
983 |
"rpds-py": {
|
984 |
"hashes": [
|
985 |
+
"sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046",
|
986 |
+
"sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724",
|
987 |
+
"sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33",
|
988 |
+
"sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc",
|
989 |
+
"sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032",
|
990 |
+
"sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a",
|
991 |
+
"sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7",
|
992 |
+
"sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c",
|
993 |
+
"sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718",
|
994 |
+
"sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc",
|
995 |
+
"sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d",
|
996 |
+
"sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272",
|
997 |
+
"sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f",
|
998 |
+
"sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d",
|
999 |
+
"sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b",
|
1000 |
+
"sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb",
|
1001 |
+
"sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef",
|
1002 |
+
"sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b",
|
1003 |
+
"sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45",
|
1004 |
+
"sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4",
|
1005 |
+
"sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796",
|
1006 |
+
"sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3",
|
1007 |
+
"sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c",
|
1008 |
+
"sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9",
|
1009 |
+
"sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f",
|
1010 |
+
"sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029",
|
1011 |
+
"sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9",
|
1012 |
+
"sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399",
|
1013 |
+
"sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586",
|
1014 |
+
"sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda",
|
1015 |
+
"sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91",
|
1016 |
+
"sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b",
|
1017 |
+
"sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a",
|
1018 |
+
"sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c",
|
1019 |
+
"sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405",
|
1020 |
+
"sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5",
|
1021 |
+
"sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143",
|
1022 |
+
"sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a",
|
1023 |
+
"sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c",
|
1024 |
+
"sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78",
|
1025 |
+
"sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0",
|
1026 |
+
"sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350",
|
1027 |
+
"sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7",
|
1028 |
+
"sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba",
|
1029 |
+
"sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664",
|
1030 |
+
"sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a",
|
1031 |
+
"sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56",
|
1032 |
+
"sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e",
|
1033 |
+
"sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d",
|
1034 |
+
"sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1",
|
1035 |
+
"sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964",
|
1036 |
+
"sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791",
|
1037 |
+
"sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124",
|
1038 |
+
"sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e",
|
1039 |
+
"sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120",
|
1040 |
+
"sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad",
|
1041 |
+
"sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc",
|
1042 |
+
"sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c",
|
1043 |
+
"sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e",
|
1044 |
+
"sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba",
|
1045 |
+
"sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797",
|
1046 |
+
"sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149",
|
1047 |
+
"sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5",
|
1048 |
+
"sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240",
|
1049 |
+
"sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034",
|
1050 |
+
"sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25",
|
1051 |
+
"sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7",
|
1052 |
+
"sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d",
|
1053 |
+
"sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793",
|
1054 |
+
"sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba",
|
1055 |
+
"sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d",
|
1056 |
+
"sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d",
|
1057 |
+
"sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391",
|
1058 |
+
"sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e",
|
1059 |
+
"sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f",
|
1060 |
+
"sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7",
|
1061 |
+
"sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd",
|
1062 |
+
"sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f",
|
1063 |
+
"sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb",
|
1064 |
+
"sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea",
|
1065 |
+
"sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e",
|
1066 |
+
"sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052",
|
1067 |
+
"sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd",
|
1068 |
+
"sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47",
|
1069 |
+
"sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d",
|
1070 |
+
"sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9",
|
1071 |
+
"sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8",
|
1072 |
+
"sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875",
|
1073 |
+
"sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65",
|
1074 |
+
"sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e",
|
1075 |
+
"sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114",
|
1076 |
+
"sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44",
|
1077 |
+
"sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9",
|
1078 |
+
"sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a",
|
1079 |
+
"sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205",
|
1080 |
+
"sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164",
|
1081 |
+
"sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58",
|
1082 |
+
"sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3",
|
1083 |
+
"sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6",
|
1084 |
+
"sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97",
|
1085 |
+
"sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6",
|
1086 |
+
"sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae",
|
1087 |
+
"sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727",
|
1088 |
+
"sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098",
|
1089 |
+
"sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c",
|
1090 |
+
"sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1",
|
1091 |
+
"sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8",
|
1092 |
+
"sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d",
|
1093 |
+
"sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103",
|
1094 |
+
"sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30",
|
1095 |
+
"sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d",
|
1096 |
+
"sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5",
|
1097 |
+
"sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07",
|
1098 |
+
"sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83"
|
1099 |
],
|
1100 |
"markers": "python_version >= '3.9'",
|
1101 |
+
"version": "==0.24.0"
|
1102 |
},
|
1103 |
"safetensors": {
|
1104 |
"hashes": [
|
|
|
1126 |
"sha256:18fd474d4a82a5f83dac888df697af65afa82dec7323d09c3e37d1f14288da54",
|
1127 |
"sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8"
|
1128 |
],
|
1129 |
+
"markers": "python_version >= '3.9'",
|
1130 |
"version": "==78.1.0"
|
1131 |
},
|
1132 |
+
"shellingham": {
|
1133 |
+
"hashes": [
|
1134 |
+
"sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686",
|
1135 |
+
"sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"
|
1136 |
+
],
|
1137 |
+
"markers": "python_version >= '3.7'",
|
1138 |
+
"version": "==1.5.4"
|
1139 |
+
},
|
1140 |
"six": {
|
1141 |
"hashes": [
|
1142 |
"sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
|
|
|
1176 |
"sha256:9cebf7e04ff162015ce31c9c6c9144daa34a93bd082f54fd8f12deca4f47515f",
|
1177 |
"sha256:db36cdc64bf61b9b24578b6f7bab1ecdd2452cf008f34faa33776680c26d66f8"
|
1178 |
],
|
1179 |
+
"markers": "python_version >= '3.8'",
|
1180 |
"version": "==1.13.1"
|
1181 |
},
|
1182 |
"tenacity": {
|
|
|
1270 |
},
|
1271 |
"transformers": {
|
1272 |
"hashes": [
|
1273 |
+
"sha256:99bbcddd6570f080aee81f67844f4b46c8025bbdbdb86eafb82cc7d6aaafb190",
|
1274 |
+
"sha256:dac6cef0e2698fb25b57edbc0b9af3732e4ca148ed008d3e3118203c4dd25055"
|
1275 |
],
|
1276 |
"index": "pypi",
|
1277 |
"markers": "python_full_version >= '3.9.0'",
|
1278 |
+
"version": "==4.50.2"
|
1279 |
+
},
|
1280 |
+
"typer": {
|
1281 |
+
"hashes": [
|
1282 |
+
"sha256:46a499c6107d645a9c13f7ee46c5d5096cae6f5fc57dd11eccbbb9ae3e44ddfc",
|
1283 |
+
"sha256:ab2fab47533a813c49fe1f16b1a370fd5819099c00b119e0633df65f22144ba5"
|
1284 |
+
],
|
1285 |
+
"index": "pypi",
|
1286 |
+
"markers": "python_version >= '3.7'",
|
1287 |
+
"version": "==0.15.2"
|
1288 |
},
|
1289 |
"typing-extensions": {
|
1290 |
"hashes": [
|
|
|
1345 |
],
|
1346 |
"markers": "python_version >= '3.9'",
|
1347 |
"version": "==6.0.0"
|
1348 |
+
},
|
1349 |
+
"win32-setctime": {
|
1350 |
+
"hashes": [
|
1351 |
+
"sha256:95d644c4e708aba81dc3704a116d8cbc974d70b3bdb8be1d150e36be6e9d1390",
|
1352 |
+
"sha256:ae1fdf948f5640aae05c511ade119313fb6a30d7eabe25fef9764dca5873c4c0"
|
1353 |
+
],
|
1354 |
+
"markers": "python_version >= '3.5'",
|
1355 |
+
"version": "==1.2.0"
|
1356 |
}
|
1357 |
},
|
1358 |
"develop": {}
|
app.py
CHANGED
@@ -1,73 +1,101 @@
|
|
1 |
import streamlit as st
|
2 |
import nest_asyncio
|
3 |
import pandas as pd
|
|
|
|
|
|
|
|
|
4 |
from annotated_text import annotation
|
5 |
from scripts.predict import InferenceHandler
|
6 |
-
from
|
7 |
|
8 |
-
|
9 |
|
|
|
|
|
10 |
rc = None
|
11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
12 |
@st.cache_data
|
13 |
-
def load_inference_handler(api_token):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
try:
|
15 |
return InferenceHandler(api_token)
|
16 |
except:
|
17 |
return None
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
row_data = []
|
22 |
-
|
23 |
-
row_data.append(json_obj['text_input'])
|
24 |
-
row_data.append(json_obj['text_sentiment'])
|
25 |
-
cat_dict = json_obj['category_sentiments']
|
26 |
-
for cat in cat_dict.keys():
|
27 |
-
raw_val = cat_dict[cat]
|
28 |
-
val = f'{raw_val * 100: .2f}%' if raw_val is not None else 'N/A'
|
29 |
-
row_data.append(val)
|
30 |
-
|
31 |
-
return row_data
|
32 |
-
|
33 |
-
def load_history(parent_elem):
|
34 |
-
with parent_elem:
|
35 |
-
for idx, result in enumerate(st.session_state.results):
|
36 |
-
text = result['text_input']
|
37 |
-
discriminatory = False
|
38 |
-
|
39 |
-
data = []
|
40 |
-
for sent_item in result['results']:
|
41 |
-
sentence = sent_item['sentence']
|
42 |
-
bin_class = sent_item['binary_classification']['classification']
|
43 |
-
pred_class = sent_item['binary_classification']['prediction_class']
|
44 |
-
ml_regr = sent_item['multilabel_regression']
|
45 |
-
|
46 |
-
row_data = [sentence, bin_class]
|
47 |
-
if pred_class == 1:
|
48 |
-
discriminatory = True
|
49 |
-
for cat in ml_regr.keys():
|
50 |
-
perc = ml_regr[cat] * 100
|
51 |
-
row_data.append(f'{perc:.2f}%')
|
52 |
-
else:
|
53 |
-
for i in range(6):
|
54 |
-
row_data.append(None)
|
55 |
-
|
56 |
-
data.append(row_data)
|
57 |
-
df = pd.DataFrame(data=data, columns=['Sentence', 'Binary Classification', 'Gender', 'Race', 'Sexuality', 'Disability', 'Religion', 'Unspecified'])
|
58 |
-
|
59 |
-
with st.expander(label=f'Entry #{idx+1}', icon='🔴' if discriminatory else '🟢'):
|
60 |
-
st.markdown('<hr style="margin: 0.5em 0 0 0;">', unsafe_allow_html=True)
|
61 |
-
st.markdown(
|
62 |
-
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: medium;'>\"{text}\"</p>",
|
63 |
-
unsafe_allow_html=True
|
64 |
-
)
|
65 |
-
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
66 |
-
st.markdown('##### Sentence Breakdown:')
|
67 |
-
st.dataframe(df)
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
|
70 |
-
def build_result_tree(parent_elem, results):
|
71 |
label_dict = {
|
72 |
'Gender': '#4A90E2',
|
73 |
'Race': '#E67E22',
|
@@ -125,7 +153,7 @@ def build_result_tree(parent_elem, results):
|
|
125 |
unsafe_allow_html=True
|
126 |
)
|
127 |
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
128 |
-
|
129 |
classification = sent['classification']
|
130 |
st.markdown(f'##### Classification - {classification}')
|
131 |
|
@@ -140,6 +168,7 @@ def build_result_tree(parent_elem, results):
|
|
140 |
)
|
141 |
st.markdown('\n')
|
142 |
else:
|
|
|
143 |
st.markdown(f"#### Classification - {sent['classification']}")
|
144 |
if len(sent['annotated_categories']) > 0:
|
145 |
st.markdown(
|
@@ -153,19 +182,80 @@ def build_result_tree(parent_elem, results):
|
|
153 |
st.markdown('\n')
|
154 |
|
155 |
@st.cache_data
|
156 |
-
def analyze_text(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
if ih:
|
158 |
res = None
|
159 |
with rc:
|
160 |
with st.spinner("Processing...", show_time=True) as spnr:
|
161 |
# time.sleep(5)
|
162 |
-
res = ih.classify_text(
|
163 |
del spnr
|
164 |
|
165 |
if res is not None:
|
166 |
st.session_state.results.append(res)
|
167 |
build_result_tree(rc, res)
|
168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
st.title('NLPinitiative Text Classifier')
|
170 |
|
171 |
st.sidebar.write("")
|
@@ -178,9 +268,10 @@ ih = load_inference_handler(API_KEY)
|
|
178 |
|
179 |
tab1 = st.empty()
|
180 |
tab2 = st.empty()
|
|
|
181 |
tab3 = st.empty()
|
182 |
|
183 |
-
tab1, tab2, tab3 = st.tabs(['Classifier', 'Input History', 'About This App'])
|
184 |
|
185 |
if "results" not in st.session_state:
|
186 |
st.session_state.results = []
|
@@ -198,16 +289,44 @@ with tab1:
|
|
198 |
analyze_text(text_area)
|
199 |
|
200 |
with tab2:
|
201 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
with tab3:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
204 |
st.markdown(
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import streamlit as st
|
2 |
import nest_asyncio
|
3 |
import pandas as pd
|
4 |
+
import os
|
5 |
+
|
6 |
+
from htbuilder import span, div
|
7 |
+
from loguru import logger
|
8 |
from annotated_text import annotation
|
9 |
from scripts.predict import InferenceHandler
|
10 |
+
from huggingface_hub import snapshot_download
|
11 |
|
12 |
+
from scripts.config import DATASET_REPO
|
13 |
|
14 |
+
nest_asyncio.apply()
|
15 |
+
st.set_page_config(layout='wide')
|
16 |
rc = None
|
17 |
|
18 |
+
def load_history(parent_elem):
|
19 |
+
"""Loads the history of results from inference for previous inputs made by the user.
|
20 |
+
|
21 |
+
Parameters
|
22 |
+
----------
|
23 |
+
parent_elem : DeltaGenerator
|
24 |
+
The Streamlit UI element that contains the history data.
|
25 |
+
"""
|
26 |
+
|
27 |
+
with parent_elem:
|
28 |
+
if len(st.session_state.results) == 0:
|
29 |
+
st.markdown(
|
30 |
+
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: 1.5vw;'>No History</p>",
|
31 |
+
unsafe_allow_html=True
|
32 |
+
)
|
33 |
+
else:
|
34 |
+
for idx, result in enumerate(st.session_state.results):
|
35 |
+
text = result['text_input']
|
36 |
+
discriminatory = False
|
37 |
+
|
38 |
+
data = []
|
39 |
+
for sent_item in result['results']:
|
40 |
+
sentence = sent_item['sentence']
|
41 |
+
bin_class = sent_item['binary_classification']['classification']
|
42 |
+
pred_class = sent_item['binary_classification']['prediction_class']
|
43 |
+
ml_regr = sent_item['multilabel_regression']
|
44 |
+
|
45 |
+
row_data = [sentence, bin_class]
|
46 |
+
if pred_class == 1:
|
47 |
+
discriminatory = True
|
48 |
+
for cat in ml_regr.keys():
|
49 |
+
perc = ml_regr[cat] * 100
|
50 |
+
row_data.append(f'{perc:.2f}%')
|
51 |
+
else:
|
52 |
+
for i in range(6):
|
53 |
+
row_data.append(None)
|
54 |
+
|
55 |
+
data.append(row_data)
|
56 |
+
df = pd.DataFrame(data=data, columns=['Sentence', 'Binary Classification', 'Gender', 'Race', 'Sexuality', 'Disability', 'Religion', 'Unspecified'])
|
57 |
+
|
58 |
+
with st.expander(label=f'Entry #{idx+1}', icon='🔴' if discriminatory else '🟢'):
|
59 |
+
st.markdown('<hr style="margin: 0.5em 0 0 0;">', unsafe_allow_html=True)
|
60 |
+
st.markdown(
|
61 |
+
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: medium;'>\"{text}\"</p>",
|
62 |
+
unsafe_allow_html=True
|
63 |
+
)
|
64 |
+
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
65 |
+
st.markdown('##### Sentence Breakdown:')
|
66 |
+
st.dataframe(df)
|
67 |
+
|
68 |
@st.cache_data
|
69 |
+
def load_inference_handler(api_token: str) -> InferenceHandler | None:
|
70 |
+
"""Loads an instance of the InferenceHandler class once a token is entered.
|
71 |
+
|
72 |
+
Parameters
|
73 |
+
----------
|
74 |
+
api_token: str
|
75 |
+
The Hugging Face read/write token used for retrieving the binary classification and multilabel regression model tensor files.
|
76 |
+
|
77 |
+
Returns
|
78 |
+
-------
|
79 |
+
InferenceHandler | None
|
80 |
+
Returns an instance of the InferenceHandler class if a valid token is entered, otherwise returns None.
|
81 |
+
"""
|
82 |
+
|
83 |
try:
|
84 |
return InferenceHandler(api_token)
|
85 |
except:
|
86 |
return None
|
87 |
|
88 |
+
def build_result_tree(parent_elem, results: dict):
|
89 |
+
"""Loads the history of results from inference for previous inputs made by the user.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
+
Parameters
|
92 |
+
----------
|
93 |
+
parent_elem : DeltaGenerator
|
94 |
+
The Streamlit UI element to post the data to.
|
95 |
+
results : dict
|
96 |
+
The resulting data from performing inference.
|
97 |
+
"""
|
98 |
|
|
|
99 |
label_dict = {
|
100 |
'Gender': '#4A90E2',
|
101 |
'Race': '#E67E22',
|
|
|
153 |
unsafe_allow_html=True
|
154 |
)
|
155 |
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
156 |
+
|
157 |
classification = sent['classification']
|
158 |
st.markdown(f'##### Classification - {classification}')
|
159 |
|
|
|
168 |
)
|
169 |
st.markdown('\n')
|
170 |
else:
|
171 |
+
sent = sent_details[0]
|
172 |
st.markdown(f"#### Classification - {sent['classification']}")
|
173 |
if len(sent['annotated_categories']) > 0:
|
174 |
st.markdown(
|
|
|
182 |
st.markdown('\n')
|
183 |
|
184 |
@st.cache_data
|
185 |
+
def analyze_text(input: str):
|
186 |
+
"""Performs infernce on the entered text using the InferenceHandler.
|
187 |
+
|
188 |
+
Parameters
|
189 |
+
----------
|
190 |
+
input : str
|
191 |
+
The text to analyze.
|
192 |
+
"""
|
193 |
if ih:
|
194 |
res = None
|
195 |
with rc:
|
196 |
with st.spinner("Processing...", show_time=True) as spnr:
|
197 |
# time.sleep(5)
|
198 |
+
res = ih.classify_text(input)
|
199 |
del spnr
|
200 |
|
201 |
if res is not None:
|
202 |
st.session_state.results.append(res)
|
203 |
build_result_tree(rc, res)
|
204 |
|
205 |
+
@st.cache_data
|
206 |
+
def load_datasets(_parent_elem, api_token: str):
|
207 |
+
if api_token is None or len(api_token) == 0:
|
208 |
+
raise Exception()
|
209 |
+
|
210 |
+
cache_path = snapshot_download(repo_id=DATASET_REPO, repo_type='dataset', token=api_token)
|
211 |
+
ds_record = pd.read_csv(os.path.join(cache_path, 'dataset_record.csv'))
|
212 |
+
|
213 |
+
raw_ds_path = os.path.join(cache_path, 'raw')
|
214 |
+
interim_ds_path = os.path.join(cache_path, 'interim')
|
215 |
+
processed_ds_path = os.path.join(cache_path, 'processed')
|
216 |
+
|
217 |
+
with _parent_elem:
|
218 |
+
st.markdown(f'### Disclaimer')
|
219 |
+
st.markdown("> The datasets displayed contain content that may be highly discriminatory or offensive in nature. Viewer discretion is advised. This content is presented solely for analysis, research, or educational purposes and does not reflect the views or values of the creators or maintainers of this application.")
|
220 |
+
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
221 |
+
|
222 |
+
if os.path.exists(os.path.join(processed_ds_path, 'NLPinitiative_Master_Dataset.csv')):
|
223 |
+
master_df = pd.read_csv(os.path.join(processed_ds_path, 'NLPinitiative_Master_Dataset.csv'))
|
224 |
+
|
225 |
+
if len(master_df) > 0:
|
226 |
+
st.markdown(f'### NLPinitiative Master Dataset')
|
227 |
+
with st.expander(label='Master Dataset'):
|
228 |
+
st.dataframe(master_df)
|
229 |
+
|
230 |
+
if len(ds_record) > 0:
|
231 |
+
for _, row in ds_record.iterrows():
|
232 |
+
try:
|
233 |
+
ds_id = row['Dataset ID']
|
234 |
+
ds_ref_url = row['Dataset Reference URL']
|
235 |
+
raw_fn = row['Raw Dataset Filename']
|
236 |
+
norm_fn = row['Converted Filename']
|
237 |
+
|
238 |
+
raw_df = pd.read_csv(os.path.join(raw_ds_path, raw_fn))
|
239 |
+
norm_df = pd.read_csv(os.path.join(interim_ds_path, norm_fn))
|
240 |
+
|
241 |
+
st.markdown('<hr style="margin: 0 0 0.5em 0;">', unsafe_allow_html=True)
|
242 |
+
st.markdown(f'#### {ds_id} - [Link to Dataset Source]({ds_ref_url})')
|
243 |
+
with st.expander(label='Dataset'):
|
244 |
+
st.markdown(f'###### Raw Dataset')
|
245 |
+
st.dataframe(raw_df)
|
246 |
+
st.markdown(f'###### Normalized Dataset')
|
247 |
+
st.dataframe(norm_df)
|
248 |
+
|
249 |
+
except Exception as e:
|
250 |
+
logger.error(f'{e}')
|
251 |
+
else:
|
252 |
+
st.markdown(
|
253 |
+
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: 1.5vw;'>No Datasets to Display</p>",
|
254 |
+
unsafe_allow_html=True
|
255 |
+
)
|
256 |
+
|
257 |
+
#===========================================================================================================================================
|
258 |
+
|
259 |
st.title('NLPinitiative Text Classifier')
|
260 |
|
261 |
st.sidebar.write("")
|
|
|
268 |
|
269 |
tab1 = st.empty()
|
270 |
tab2 = st.empty()
|
271 |
+
tab4 = st.empty()
|
272 |
tab3 = st.empty()
|
273 |
|
274 |
+
tab1, tab2, tab3, tab4 = st.tabs(['Classifier', 'Input History', 'Datasets', 'About This App'])
|
275 |
|
276 |
if "results" not in st.session_state:
|
277 |
st.session_state.results = []
|
|
|
289 |
analyze_text(text_area)
|
290 |
|
291 |
with tab2:
|
292 |
+
hist_container = st.container(border=True)
|
293 |
+
try:
|
294 |
+
load_history(hist_container)
|
295 |
+
except:
|
296 |
+
hist_container.markdown(
|
297 |
+
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: 1.5vw;'>No History</p>",
|
298 |
+
unsafe_allow_html=True
|
299 |
+
)
|
300 |
|
301 |
with tab3:
|
302 |
+
ds_container = st.container(border=True)
|
303 |
+
try:
|
304 |
+
load_datasets(ds_container, API_KEY)
|
305 |
+
except Exception as e:
|
306 |
+
logger.error(f'{e}')
|
307 |
+
ds_container.markdown(
|
308 |
+
f"<p style='text-align: center; font-weight: bold; font-style: italic; font-size: 1.5vw;'>No Datasets to Display</p>",
|
309 |
+
unsafe_allow_html=True
|
310 |
+
)
|
311 |
+
|
312 |
+
with tab4:
|
313 |
st.markdown(
|
314 |
+
f"""
|
315 |
+
## About
|
316 |
+
The NLPinitiative Discriminatory Text Classifier is an advanced
|
317 |
+
natural language processing tool designed to detect and flag potentially
|
318 |
+
discriminatory or harmful language. By analyzing text for biased, offensive,
|
319 |
+
or exclusionary content, this classifier helps promote more inclusive and
|
320 |
+
respectful communication. Simply enter your text below, and the model will
|
321 |
+
assess it based on linguistic patterns and context. While the tool provides
|
322 |
+
valuable insights, we encourage users to review flagged content thoughtfully
|
323 |
+
and consider context when interpreting results.
|
324 |
+
|
325 |
+
The application utilizes two NLP models: a fine-tuned binary classifier for classifying input as
|
326 |
+
Discriminatory or Non-Discriminatory and a fine-tuned multilabel regression model for assessing
|
327 |
+
the likelihood of specific categories of discrimination (Gender, Race, Sexuality, Disability, Religion
|
328 |
+
and Unspecified). The base model used for both fine-tuned models is the pretrained
|
329 |
+
[BERT](https://doi.org/10.48550/arXiv.1810.04805) (Bidirectional Encoder Representations from Transformers)
|
330 |
+
model.
|
331 |
+
"""
|
332 |
+
)
|
config.py
DELETED
@@ -1,23 +0,0 @@
|
|
1 |
-
# Used for setting some constants for the project codebase
|
2 |
-
|
3 |
-
from pathlib import Path
|
4 |
-
|
5 |
-
# Root Path
|
6 |
-
ROOT = Path(__file__).resolve().parents[0]
|
7 |
-
|
8 |
-
# Model Directory
|
9 |
-
MODELS_DIR = ROOT / 'models'
|
10 |
-
|
11 |
-
# Binary Classification Model Path
|
12 |
-
BIN_MODEL_PATH = MODELS_DIR / 'binary_classification'
|
13 |
-
|
14 |
-
# Multilabel Regression Model Path
|
15 |
-
ML_MODEL_PATH = MODELS_DIR / 'multilabel_regression'
|
16 |
-
|
17 |
-
# HF Hub Repositories
|
18 |
-
BIN_REPO = 'dlsmallw/NLPinitiative-Binary-Classification'
|
19 |
-
ML_REPO = 'dlsmallw/NLPinitiative-Multilabel-Regression'
|
20 |
-
DATASET_REPO = 'dlsmallw/NLPinitiative-Dataset'
|
21 |
-
|
22 |
-
BIN_API_URL = f"https://api-inference.huggingface.co/models/{BIN_REPO}"
|
23 |
-
ML_API_URL = f"https://api-inference.huggingface.co/models/{ML_REPO}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
config.toml
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
[repositories]
|
2 |
+
bin_repo = "dlsmallw/NLPinitiative-Binary-Classification"
|
3 |
+
ml_repo = "dlsmallw/NLPinitiative-Multilabel-Regression"
|
4 |
+
ds_repo = "dlsmallw/NLPinitiative-Dataset"
|
scripts/__init__.py
CHANGED
@@ -1 +1 @@
|
|
1 |
-
import config
|
|
|
1 |
+
import scripts.config as config
|
scripts/config.py
ADDED
@@ -0,0 +1,76 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# Used for setting some constants for the project codebase
|
2 |
+
import toml
|
3 |
+
import typer
|
4 |
+
from pathlib import Path
|
5 |
+
from loguru import logger
|
6 |
+
from typing_extensions import Annotated
|
7 |
+
|
8 |
+
app = typer.Typer()
|
9 |
+
|
10 |
+
# Root Path
|
11 |
+
ROOT = Path(__file__).resolve().parents[1]
|
12 |
+
|
13 |
+
try:
|
14 |
+
logger.info('Loading config.toml...')
|
15 |
+
with open(ROOT / 'config.toml', 'r') as f:
|
16 |
+
config = toml.load(f, dict)
|
17 |
+
f.close()
|
18 |
+
|
19 |
+
if 'repositories' not in config.keys() or \
|
20 |
+
'bin_repo' not in config['repositories'] or \
|
21 |
+
'ml_repo' not in config['repositories'] or \
|
22 |
+
'ds_repo' not in config['repositories']:
|
23 |
+
raise Exception('Malformed toml config file.')
|
24 |
+
|
25 |
+
logger.success('config.toml loaded successfully.')
|
26 |
+
except Exception as e:
|
27 |
+
logger.error(e)
|
28 |
+
config = {
|
29 |
+
'repositories': {
|
30 |
+
'bin_repo': '',
|
31 |
+
'ml_repo': '',
|
32 |
+
'ds_repo': ''
|
33 |
+
}
|
34 |
+
}
|
35 |
+
|
36 |
+
with open(ROOT / 'config.toml', 'w') as f:
|
37 |
+
toml.dump(config, f)
|
38 |
+
f.close()
|
39 |
+
|
40 |
+
|
41 |
+
# HF Hub Repositories
|
42 |
+
BIN_REPO = config['repositories']['bin_repo']
|
43 |
+
ML_REPO = config['repositories']['ml_repo']
|
44 |
+
DATASET_REPO = config['repositories']['ds_repo']
|
45 |
+
|
46 |
+
@app.command()
|
47 |
+
def main(
|
48 |
+
bin_repo: Annotated[str, typer.Option("--binary-repo", "-b")] = None,
|
49 |
+
ml_repo: Annotated[str, typer.Option("--multilabel-regression-repo", "-m")] = None,
|
50 |
+
ds_repo: Annotated[str, typer.Option("--dataset-repo", "-d")] = None
|
51 |
+
):
|
52 |
+
toml_edited = False
|
53 |
+
|
54 |
+
if bin_repo is not None and len(bin_repo) > 0:
|
55 |
+
config['repositories']['bin_repo'] = bin_repo
|
56 |
+
toml_edited = True
|
57 |
+
logger.success(f'Successfully updated binary repository to {bin_repo}.')
|
58 |
+
|
59 |
+
if ml_repo is not None and len(ml_repo) > 0:
|
60 |
+
config['repositories']['ml_repo'] = ml_repo
|
61 |
+
toml_edited = True
|
62 |
+
logger.success(f'Successfully updated binary repository to {ml_repo}.')
|
63 |
+
|
64 |
+
if ds_repo is not None and len(ds_repo) > 0:
|
65 |
+
config['repositories']['ds_repo'] = ds_repo
|
66 |
+
toml_edited = True
|
67 |
+
logger.success(f'Successfully updated binary repository to "{ds_repo}".')
|
68 |
+
|
69 |
+
if toml_edited:
|
70 |
+
with open(ROOT / 'config.toml', 'w') as f:
|
71 |
+
toml.dump(config, f)
|
72 |
+
f.close()
|
73 |
+
|
74 |
+
|
75 |
+
if __name__ == "__main__":
|
76 |
+
app()
|
setup.sh
CHANGED
@@ -35,4 +35,36 @@ docs() {
|
|
35 |
log_error "Specify 'build' or 'serve'. For example: docs build"
|
36 |
;;
|
37 |
esac
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
}
|
|
|
35 |
log_error "Specify 'build' or 'serve'. For example: docs build"
|
36 |
;;
|
37 |
esac
|
38 |
+
}
|
39 |
+
|
40 |
+
set() {
|
41 |
+
if [[ $# -lt 2 ]]; then
|
42 |
+
echo "Command Requires Two Arguments."
|
43 |
+
else
|
44 |
+
case $1 in
|
45 |
+
bin_repo)
|
46 |
+
python ./scripts/config.py -b "$2"
|
47 |
+
;;
|
48 |
+
ml_repo)
|
49 |
+
python ./scripts/config.py -m "$2"
|
50 |
+
;;
|
51 |
+
ds_repo)
|
52 |
+
python ./scripts/config.py -d "$2"
|
53 |
+
;;
|
54 |
+
*)
|
55 |
+
log_error "Specify 'bin_repo', 'ml_repo' or 'ds_repo'. For example: set bin_repo <repo id>"
|
56 |
+
;;
|
57 |
+
esac
|
58 |
+
fi
|
59 |
+
}
|
60 |
+
|
61 |
+
run() {
|
62 |
+
case $1 in
|
63 |
+
dev)
|
64 |
+
streamlit run app.py
|
65 |
+
;;
|
66 |
+
*)
|
67 |
+
log_error "Specify 'dev'. For example: run dev"
|
68 |
+
;;
|
69 |
+
esac
|
70 |
}
|