Skip to content
Snippets Groups Projects
Verified Commit e87b66db authored by Martin Weise's avatar Martin Weise
Browse files

Updated the analyse service

parent c75d930d
No related branches found
No related tags found
No related merge requests found
Showing
with 2690 additions and 510 deletions
Pipfile 0 → 100644
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
mkdocs = "==1.5.3"
mkdocs-material = "==9.5.17"
mkdocs-with-pdf = "==0.9.3"
mkdocs-material-extensions = ">=1.0.3"
requests = "==2.31.0"
py-dotenv = ">=0.1"
python-dotenv = "==1.0.0"
build = "==1.1.1"
twine = "==5.0.0"
furo = "==2024.1.29"
pika = "==1.3.2"
pydantic = "==2.6.4"
tuspy = "==1.0.3"
mike = "==2.0.0"
anybadge = "==1.14.0"
[dev-packages]
[requires]
python_version = "3.11"
FROM pytorch/pytorch:2.4.0-cuda12.4-cudnn9-runtime
FROM pytorch/pytorch:2.4.0-cuda12.4-cudnn9-runtime AS build
# Build Embeddings
WORKDIR /app
COPY --chown=1001 ./bge-m3 ./bge-m3
COPY --chown=1001 ./clients ./clients
COPY --chown=1001 ./data ./data
COPY --chown=1001 ./eval ./eval
COPY --chown=1001 ./matching ./matching
COPY --chown=1001 ./models ./models
COPY --chown=1001 ./services ./services
COPY --chown=1001 ./init.py ./init.py
FROM python:3.11-alpine AS runtime
LABEL org.opencontainers.image.authors="martin.weise@tuwien.ac.at"
RUN apt-get update && apt-get install -y bash curl && apt-get clean
RUN apk --no-cache add py3-h5py bash curl
WORKDIR /home/alpine
......@@ -28,7 +42,7 @@ COPY --chown=1001 ./eval ./eval
COPY --chown=1001 ./matching ./matching
COPY --chown=1001 ./models ./models
COPY --chown=1001 ./services ./services
COPY --chown=1001 ./*.py ./
COPY --chown=1001 ./app.py determine_*.py ./
ENV HF_HOME="/app/ml"
ENV MPLCONFIGDIR="/app/mpl"
......
......@@ -7,7 +7,6 @@ name = "pypi"
boto3 = "*"
exceptiongroup = "*"
flasgger = "*"
FlagEmbedding = "*"
flask = "*"
flask-caching = "*"
flask-cors = "*"
......@@ -16,23 +15,17 @@ flask-jwt-extended = "*"
gevent = "*"
greenlet = "*"
gunicorn = "*"
h5py = "*"
jwt = "*"
requests = "*"
matplotlib = "*"
minio = "*"
nltk = "*"
numpy = "*"
opensearch-py = "*"
owlready2 = "*"
prometheus-flask-exporter = "*"
pandas = "*"
peft = "*"
pydantic = "*"
dbrepo = {path = "./lib/dbrepo-1.4.7.tar.gz"}
opensearch-py = "*"
textdistance = "*"
torch = "*"
dbrepo = {path = "./lib/dbrepo-1.4.7.tar.gz"}
[dev-packages]
coverage = "*"
......@@ -40,6 +33,13 @@ pytest = "*"
requests-mock = "*"
testcontainers-minio = "*"
testcontainers-opensearch = "*"
h5py = "*"
FlagEmbedding = "*"
owlready2 = "*"
peft = "*"
nltk = "*"
textdistance = "*"
sentence-transformers = "*"
[requires]
python_version = "3.11"
This diff is collapsed.
No preview for this file type
......@@ -5,11 +5,17 @@ from sentence_transformers import SentenceTransformer
from FlagEmbedding import BGEM3FlagModel
import logging
from torch import Tensor
class Embedding:
"""
Class to retrieve the embeddings in the runtime
"""
# _data: {text:embedding}
_data: {str: torch.Tensor} = None
_uris: {str: str}
_empty_tensor: None | Tensor = None
def __init__(self, _data: {str: torch.Tensor}, _uris: {str: str}):
self._data = _data
......@@ -108,6 +114,9 @@ class Encoder:
class MiniLMEncoder(Encoder):
"""
Class to encode the embeddings during build
"""
def __init__(self) -> None:
super().__init__()
......@@ -153,6 +162,9 @@ class MiniLMEncoder(Encoder):
class NasaSMD(Encoder):
"""
Class to encode the embeddings during build
"""
def __init__(self) -> None:
super().__init__()
......@@ -179,6 +191,9 @@ class NasaSMD(Encoder):
class NasaSMD2(Encoder):
"""
Class to encode the embeddings during build
"""
def __init__(self) -> None:
super().__init__()
......@@ -205,6 +220,9 @@ class NasaSMD2(Encoder):
class BGEMDense(Encoder):
"""
Class to encode the embeddings during build
"""
def __init__(self) -> None:
super().__init__()
......@@ -257,6 +275,9 @@ class BGEMDense(Encoder):
class BGEMMultivector(Encoder):
"""
Class to encode the embeddings during build
"""
def __init__(self) -> None:
super().__init__()
......
......@@ -13,7 +13,6 @@ import at.tuwien.entities.user.User;
import at.tuwien.exception.*;
import at.tuwien.mapper.MetadataMapper;
import at.tuwien.service.DatabaseService;
import at.tuwien.service.EntityService;
import at.tuwien.service.TableService;
import at.tuwien.service.UserService;
import at.tuwien.utils.UserUtil;
......
......@@ -64,9 +64,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
@MockBean
private UserService userService;
@MockBean
private EntityService entityService;
@Autowired
private TableEndpoint tableEndpoint;
......@@ -560,64 +557,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
generic_findById(DATABASE_3_ID, DATABASE_3, TABLE_8_ID, TABLE_8, USER_1_PRINCIPAL, USER_1, null);
}
@Test
@WithAnonymousUser
public void analyseTable_anonymous_fails() {
/* test */
assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> {
analyseTable_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1);
});
}
@Test
@WithMockUser(username = USER_4_USERNAME)
public void findAll_noRole_fails() {
/* test */
assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> {
analyseTable_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1);
});
}
@Test
@WithMockUser(username = USER_1_USERNAME, authorities = {"table-semantic-analyse"})
public void findAll_hasRole_succeeds() throws MalformedException, TableNotFoundException,
DatabaseNotFoundException {
/* test */
analyseTable_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1);
}
@Test
@WithAnonymousUser
public void analyseTableColumn_anonymous_fails() {
/* test */
assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> {
analyseTableColumn_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1_COLUMNS.get(0).getId(), TABLE_1_COLUMNS.get(0));
});
}
@Test
@WithMockUser(username = USER_4_USERNAME)
public void analyseTableColumn_noRole_fails() {
/* test */
assertThrows(org.springframework.security.access.AccessDeniedException.class, () -> {
analyseTableColumn_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1_COLUMNS.get(0).getId(), TABLE_1_COLUMNS.get(0));
});
}
@Test
@WithMockUser(username = USER_1_USERNAME, authorities = {"table-semantic-analyse"})
public void analyseTableColumn_hasRole_succeeds() throws MalformedException, TableNotFoundException,
DatabaseNotFoundException {
/* test */
analyseTableColumn_generic(DATABASE_1_ID, TABLE_1_ID, TABLE_1_COLUMNS.get(0).getId(), TABLE_1_COLUMNS.get(0));
}
@Test
@WithAnonymousUser
public void update_publicAnonymous_fails() {
......@@ -1002,34 +941,6 @@ public class TableEndpointUnitTest extends AbstractUnitTest {
/* ## GENERIC TEST CASES ## */
/* ################################################################################################### */
public void analyseTable_generic(Long databaseId, Long tableId, Table table) throws MalformedException,
TableNotFoundException, DatabaseNotFoundException {
/* mock */
when(entityService.suggestByTable(table))
.thenReturn(List.of());
/* test */
final ResponseEntity<List<EntityDto>> response = tableEndpoint.analyseTable(databaseId, tableId);
assertEquals(HttpStatus.OK, response.getStatusCode());
final List<EntityDto> body = response.getBody();
assertNotNull(body);
}
public void analyseTableColumn_generic(Long databaseId, Long tableId, Long columnId, TableColumn tableColumn)
throws MalformedException, TableNotFoundException, DatabaseNotFoundException {
/* mock */
when(entityService.suggestByColumn(tableColumn))
.thenReturn(List.of());
/* test */
final ResponseEntity<List<TableColumnEntityDto>> response = tableEndpoint.analyseTableColumn(databaseId, tableId, columnId);
assertEquals(HttpStatus.OK, response.getStatusCode());
final List<TableColumnEntityDto> body = response.getBody();
assertNotNull(body);
}
protected ResponseEntity<List<TableBriefDto>> generic_list(Long databaseId, Database database, Principal principal,
User user, DatabaseAccess access)
throws NotAllowedException, DatabaseNotFoundException, AccessNotFoundException, UserNotFoundException {
......
This diff is collapsed.
......@@ -282,7 +282,7 @@
},
"dbrepo": {
"hashes": [
"sha256:84607677b0826bb9b2fa120aacdf56d16c8d9ae423f435b2bd2c22b1c965a33c"
"sha256:eaaa149c6e121ed1f280712c52bea22f0d70a5bc4593710b213683a17b659f8c"
],
"path": "./lib/dbrepo-1.4.7.tar.gz"
},
......@@ -392,6 +392,14 @@
"markers": "python_version >= '3.8'",
"version": "==1.4.1"
},
"html5lib-modern": {
"hashes": [
"sha256:1fadbfc27ea955431270e4e79a4a4c290ba11c3a3098a95cc22dc73e312a1768",
"sha256:3458b6e31525ede4fcaac0ff42d9eeb5efaf755473768103cb56e0275caa8d99"
],
"markers": "python_version >= '3.8'",
"version": "==1.2"
},
"idna": {
"hashes": [
"sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9",
......@@ -408,13 +416,6 @@
"markers": "python_version >= '3.7'",
"version": "==2.0.0"
},
"isodate": {
"hashes": [
"sha256:0751eece944162659049d35f4f549ed815792b38793f07cf73381c1c87cbed96",
"sha256:48c5881de7e8b0a0d648cb024c8062dc84e7b840ed81e864c7614fd3c127bde9"
],
"version": "==0.6.1"
},
"itsdangerous": {
"hashes": [
"sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef",
......@@ -965,7 +966,7 @@
"sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3",
"sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.0.post0"
},
"python-dotenv": {
......@@ -986,12 +987,12 @@
},
"rdflib": {
"hashes": [
"sha256:0438920912a642c866a513de6fe8a0001bd86ef975057d6962c79ce4771687cd",
"sha256:9995eb8569428059b8c1affd26b25eac510d64f5043d9ce8c84e0d0036e995ae"
"sha256:240c25c6e1b573ffa67aed23aae128e253c443c15291c9a01d8d392ea80c05b6",
"sha256:a29a8fccebd3d3a5f1b7e88d92dace1c89829018c7d29a6114fff4449c188b3b"
],
"index": "pypi",
"markers": "python_full_version >= '3.8.1' and python_full_version < '4.0.0'",
"version": "==7.0.0"
"version": "==7.1.0"
},
"requests": {
"hashes": [
......@@ -1006,7 +1007,7 @@
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.16.0"
},
"testcontainers-core": {
......@@ -1150,107 +1151,91 @@
},
"yarl": {
"hashes": [
"sha256:0545de8c688fbbf3088f9e8b801157923be4bf8e7b03e97c2ecd4dfa39e48e0e",
"sha256:076b1ed2ac819933895b1a000904f62d615fe4533a5cf3e052ff9a1da560575c",
"sha256:0afad2cd484908f472c8fe2e8ef499facee54a0a6978be0e0cff67b1254fd747",
"sha256:0ccaa1bc98751fbfcf53dc8dfdb90d96e98838010fc254180dd6707a6e8bb179",
"sha256:0d3105efab7c5c091609abacad33afff33bdff0035bece164c98bcf5a85ef90a",
"sha256:0e1af74a9529a1137c67c887ed9cde62cff53aa4d84a3adbec329f9ec47a3936",
"sha256:136f9db0f53c0206db38b8cd0c985c78ded5fd596c9a86ce5c0b92afb91c3a19",
"sha256:156ececdf636143f508770bf8a3a0498de64da5abd890c7dbb42ca9e3b6c05b8",
"sha256:15c87339490100c63472a76d87fe7097a0835c705eb5ae79fd96e343473629ed",
"sha256:1695497bb2a02a6de60064c9f077a4ae9c25c73624e0d43e3aa9d16d983073c2",
"sha256:173563f3696124372831007e3d4b9821746964a95968628f7075d9231ac6bb33",
"sha256:173866d9f7409c0fb514cf6e78952e65816600cb888c68b37b41147349fe0057",
"sha256:23ec1d3c31882b2a8a69c801ef58ebf7bae2553211ebbddf04235be275a38548",
"sha256:243fbbbf003754fe41b5bdf10ce1e7f80bcc70732b5b54222c124d6b4c2ab31c",
"sha256:28c6cf1d92edf936ceedc7afa61b07e9d78a27b15244aa46bbcd534c7458ee1b",
"sha256:2aa738e0282be54eede1e3f36b81f1e46aee7ec7602aa563e81e0e8d7b67963f",
"sha256:2cf441c4b6e538ba0d2591574f95d3fdd33f1efafa864faa077d9636ecc0c4e9",
"sha256:30c3ff305f6e06650a761c4393666f77384f1cc6c5c0251965d6bfa5fbc88f7f",
"sha256:31561a5b4d8dbef1559b3600b045607cf804bae040f64b5f5bca77da38084a8a",
"sha256:32b66be100ac5739065496c74c4b7f3015cef792c3174982809274d7e51b3e04",
"sha256:3433da95b51a75692dcf6cc8117a31410447c75a9a8187888f02ad45c0a86c50",
"sha256:34a2d76a1984cac04ff8b1bfc939ec9dc0914821264d4a9c8fd0ed6aa8d4cfd2",
"sha256:353665775be69bbfc6d54c8d134bfc533e332149faeddd631b0bc79df0897f46",
"sha256:38d0124fa992dbacd0c48b1b755d3ee0a9f924f427f95b0ef376556a24debf01",
"sha256:3c56ec1eacd0a5d35b8a29f468659c47f4fe61b2cab948ca756c39b7617f0aa5",
"sha256:3db817b4e95eb05c362e3b45dafe7144b18603e1211f4a5b36eb9522ecc62bcf",
"sha256:3e52474256a7db9dcf3c5f4ca0b300fdea6c21cca0148c8891d03a025649d935",
"sha256:416f2e3beaeae81e2f7a45dc711258be5bdc79c940a9a270b266c0bec038fb84",
"sha256:435aca062444a7f0c884861d2e3ea79883bd1cd19d0a381928b69ae1b85bc51d",
"sha256:4388c72174868884f76affcdd3656544c426407e0043c89b684d22fb265e04a5",
"sha256:43ebdcc120e2ca679dba01a779333a8ea76b50547b55e812b8b92818d604662c",
"sha256:458c0c65802d816a6b955cf3603186de79e8fdb46d4f19abaec4ef0a906f50a7",
"sha256:533a28754e7f7439f217550a497bb026c54072dbe16402b183fdbca2431935a9",
"sha256:553dad9af802a9ad1a6525e7528152a015b85fb8dbf764ebfc755c695f488367",
"sha256:5838f2b79dc8f96fdc44077c9e4e2e33d7089b10788464609df788eb97d03aad",
"sha256:5b48388ded01f6f2429a8c55012bdbd1c2a0c3735b3e73e221649e524c34a58d",
"sha256:5bc0df728e4def5e15a754521e8882ba5a5121bd6b5a3a0ff7efda5d6558ab3d",
"sha256:63eab904f8630aed5a68f2d0aeab565dcfc595dc1bf0b91b71d9ddd43dea3aea",
"sha256:66f629632220a4e7858b58e4857927dd01a850a4cef2fb4044c8662787165cf7",
"sha256:670eb11325ed3a6209339974b276811867defe52f4188fe18dc49855774fa9cf",
"sha256:69d5856d526802cbda768d3e6246cd0d77450fa2a4bc2ea0ea14f0d972c2894b",
"sha256:6e840553c9c494a35e449a987ca2c4f8372668ee954a03a9a9685075228e5036",
"sha256:711bdfae4e699a6d4f371137cbe9e740dc958530cb920eb6f43ff9551e17cfbc",
"sha256:74abb8709ea54cc483c4fb57fb17bb66f8e0f04438cff6ded322074dbd17c7ec",
"sha256:75119badf45f7183e10e348edff5a76a94dc19ba9287d94001ff05e81475967b",
"sha256:766dcc00b943c089349d4060b935c76281f6be225e39994c2ccec3a2a36ad627",
"sha256:78e6fdc976ec966b99e4daa3812fac0274cc28cd2b24b0d92462e2e5ef90d368",
"sha256:81dadafb3aa124f86dc267a2168f71bbd2bfb163663661ab0038f6e4b8edb810",
"sha256:82d5161e8cb8f36ec778fd7ac4d740415d84030f5b9ef8fe4da54784a1f46c94",
"sha256:833547179c31f9bec39b49601d282d6f0ea1633620701288934c5f66d88c3e50",
"sha256:856b7f1a7b98a8c31823285786bd566cf06226ac4f38b3ef462f593c608a9bd6",
"sha256:8657d3f37f781d987037f9cc20bbc8b40425fa14380c87da0cb8dfce7c92d0fb",
"sha256:93bed8a8084544c6efe8856c362af08a23e959340c87a95687fdbe9c9f280c8b",
"sha256:954dde77c404084c2544e572f342aef384240b3e434e06cecc71597e95fd1ce7",
"sha256:98f68df80ec6ca3015186b2677c208c096d646ef37bbf8b49764ab4a38183931",
"sha256:99e12d2bf587b44deb74e0d6170fec37adb489964dbca656ec41a7cd8f2ff178",
"sha256:9a13a07532e8e1c4a5a3afff0ca4553da23409fad65def1b71186fb867eeae8d",
"sha256:9c1e3ff4b89cdd2e1a24c214f141e848b9e0451f08d7d4963cb4108d4d798f1f",
"sha256:9ce2e0f6123a60bd1a7f5ae3b2c49b240c12c132847f17aa990b841a417598a2",
"sha256:9fcda20b2de7042cc35cf911702fa3d8311bd40055a14446c1e62403684afdc5",
"sha256:a32d58f4b521bb98b2c0aa9da407f8bd57ca81f34362bcb090e4a79e9924fefc",
"sha256:a39c36f4218a5bb668b4f06874d676d35a035ee668e6e7e3538835c703634b84",
"sha256:a5cafb02cf097a82d74403f7e0b6b9df3ffbfe8edf9415ea816314711764a27b",
"sha256:a7cf963a357c5f00cb55b1955df8bbe68d2f2f65de065160a1c26b85a1e44172",
"sha256:a880372e2e5dbb9258a4e8ff43f13888039abb9dd6d515f28611c54361bc5644",
"sha256:ace4cad790f3bf872c082366c9edd7f8f8f77afe3992b134cfc810332206884f",
"sha256:af8ff8d7dc07ce873f643de6dfbcd45dc3db2c87462e5c387267197f59e6d776",
"sha256:b47a6000a7e833ebfe5886b56a31cb2ff12120b1efd4578a6fcc38df16cc77bd",
"sha256:b71862a652f50babab4a43a487f157d26b464b1dedbcc0afda02fd64f3809d04",
"sha256:b7f227ca6db5a9fda0a2b935a2ea34a7267589ffc63c8045f0e4edb8d8dcf956",
"sha256:bc8936d06cd53fddd4892677d65e98af514c8d78c79864f418bbf78a4a2edde4",
"sha256:bed1b5dbf90bad3bfc19439258c97873eab453c71d8b6869c136346acfe497e7",
"sha256:c45817e3e6972109d1a2c65091504a537e257bc3c885b4e78a95baa96df6a3f8",
"sha256:c68e820879ff39992c7f148113b46efcd6ec765a4865581f2902b3c43a5f4bbb",
"sha256:c77494a2f2282d9bbbbcab7c227a4d1b4bb829875c96251f66fb5f3bae4fb053",
"sha256:c998d0558805860503bc3a595994895ca0f7835e00668dadc673bbf7f5fbfcbe",
"sha256:ccad2800dfdff34392448c4bf834be124f10a5bc102f254521d931c1c53c455a",
"sha256:cd126498171f752dd85737ab1544329a4520c53eed3997f9b08aefbafb1cc53b",
"sha256:ce44217ad99ffad8027d2fde0269ae368c86db66ea0571c62a000798d69401fb",
"sha256:d1ac2bc069f4a458634c26b101c2341b18da85cb96afe0015990507efec2e417",
"sha256:d417a4f6943112fae3924bae2af7112562285848d9bcee737fc4ff7cbd450e6c",
"sha256:d538df442c0d9665664ab6dd5fccd0110fa3b364914f9c85b3ef9b7b2e157980",
"sha256:ded1b1803151dd0f20a8945508786d57c2f97a50289b16f2629f85433e546d47",
"sha256:e2e93b88ecc8f74074012e18d679fb2e9c746f2a56f79cd5e2b1afcf2a8a786b",
"sha256:e4ca3b9f370f218cc2a0309542cab8d0acdfd66667e7c37d04d617012485f904",
"sha256:e4ee8b8639070ff246ad3649294336b06db37a94bdea0d09ea491603e0be73b8",
"sha256:e52f77a0cd246086afde8815039f3e16f8d2be51786c0a39b57104c563c5cbb0",
"sha256:eaea112aed589131f73d50d570a6864728bd7c0c66ef6c9154ed7b59f24da611",
"sha256:ed20a4bdc635f36cb19e630bfc644181dd075839b6fc84cac51c0f381ac472e2",
"sha256:eedc3f247ee7b3808ea07205f3e7d7879bc19ad3e6222195cd5fbf9988853e4d",
"sha256:f0e1844ad47c7bd5d6fa784f1d4accc5f4168b48999303a868fe0f8597bde715",
"sha256:f4fe99ce44128c71233d0d72152db31ca119711dfc5f2c82385ad611d8d7f897",
"sha256:f8cfd847e6b9ecf9f2f2531c8427035f291ec286c0a4944b0a9fce58c6446046",
"sha256:f9ca0e6ce7774dc7830dc0cc4bb6b3eec769db667f230e7c770a628c1aa5681b",
"sha256:fa2bea05ff0a8fb4d8124498e00e02398f06d23cdadd0fe027d84a3f7afde31e",
"sha256:fbbb63bed5fcd70cd3dd23a087cd78e4675fb5a2963b8af53f945cbbca79ae16",
"sha256:fbda058a9a68bec347962595f50546a8a4a34fd7b0654a7b9697917dc2bf810d",
"sha256:ffd591e22b22f9cb48e472529db6a47203c41c2c5911ff0a52e85723196c0d75"
"sha256:07019a9de859c5a29916defd1e8c7557de6491a10bf50c49ff5284e6aedf5313",
"sha256:0c96eaa30030e1cfafe533f3da8983812281235b7c50ef2a6c78ceca7aea1a0b",
"sha256:0d0f16c87c62b7a94b389ddf6a8c9d081265d788875c39f3a80108c4856eea7b",
"sha256:0e07e4b17b648c880e8e42bf1ac0a730bde114961646ae1c2ec4433f0c11ca94",
"sha256:1005921b30f4f39bf893946df6173567ff650307babb5ec04bbf64342a1f62c1",
"sha256:115346433fad2084ee3a1a925ccc0659990aa42e208ca54c278830a150a3caf3",
"sha256:11b207061f28b4b6d980239b22ab0ecfadc47846b5a3b8e79f27fcc019d02cf9",
"sha256:1ceb677fb583971351627eac70eec6763fbc889761828da7a276681b5e39742d",
"sha256:1e7468f31de61a82817f918743e5229fce774f73fad58487cdf88eef4f06d864",
"sha256:20acf84bd1ce530065f8e957e4a5878fda4bc5f18cb02659828210e1519de54e",
"sha256:21fabe58042f3e567b4edc75b2cf44cea02f228e41ac09d73de126bf685fe883",
"sha256:3198da7d7c34e29fc8c823e0c3ce6c7274aac35760de557c2017489c7d98fc5a",
"sha256:35a6b69cc44bda002705d6138346bf0a0234cbb7c26c3bf192513eb946aee6f9",
"sha256:3896bf15284dd23acab1f2e7fceb350d8da6f6f2436b922f7ec6b3de685d34ca",
"sha256:3a79c0a8bbb046add85663af85e9993b691bf20c2a109518bd35e0ce77edfe42",
"sha256:4076bfd8f1621449b19b9826848ed51bf0f2d1d38e82647c312c0730d8778903",
"sha256:40c18f96696549e73b92dc12619f07019cbf5faefc1612608f967c144816e493",
"sha256:46491b3e058de7b484e1c9fb20aa8441f06d6c9a18395d711c1c2a9ad6707d6a",
"sha256:48334a6c8afee93097eb17c0a094234dac2d88da076c8cf372e09e2a5dcc4b66",
"sha256:4851618679ca70b863ba2e7109be5f09f8fd7715ec505bd42e5a947dcfde3a45",
"sha256:49190eb2ece70313742b0ea51520340288a059674da1f39eefb589d598d9453e",
"sha256:49f886e8dcf591275c6e20915b516fd81647857566b0c0158c52df1e468849c9",
"sha256:4a706db0c3b7e4578ff34ed2b1d2507b08fd491346ffc64468786fdf1151d938",
"sha256:4ac85e760543129a1912a82438fc8075223e35eaa2d457d61cd83c27d00d17be",
"sha256:4f66a0eda48844508736e47ed476d8fdd7cdbf16a4053b5d439509a25f708504",
"sha256:4feab2dcb725eb5b4835207ecf3d370ff7ce930b253cba5e681646cb80d64c2c",
"sha256:527c68f48a91d953691291d3bce0209293aa5ad13ff05286ddb506791c331818",
"sha256:551205388d1da18a9975302c9a274ba24788f53bb9bb86187496ebf9e938916e",
"sha256:590e2d733a82ecf004c5c531cbef0d6be328e93adec960024eb213f10cb9503e",
"sha256:59db8e6888d5302b8dbca0c1026ddabe99d81d67cdc101941519e13ffc9050fe",
"sha256:60165b8bc260f453321004b193770a66cc1b1a5c57c07d4b8dcc96839e7ad578",
"sha256:65a0168691373e08d869d48b62c8bed0af0cdaef19c76e11ad73b43901bbdb5a",
"sha256:65e0467f90f2acf3bc83bbfeedece8f1fd84df8add1a54e9600ed7b7b5debdb0",
"sha256:691a3b498fdebef63308e8967bb598cfd326c56d628da82b799dd181bace4503",
"sha256:69f628d2da1489b27959f4d63fdb326781fe484944dce94abbf919e416c54abe",
"sha256:6e100c6c7d9e9d469009fd55cc4d7ad168d67d40758865c50da713f7ada491e5",
"sha256:6f8136bde8dfa4477c6a85c79a366581b4a505b51a52b669318fb631d3f4f638",
"sha256:76259901cf1ac3db65e7e6dff04775b626d0715f9b51d92b447351144c756a82",
"sha256:7694f109867ee428c21b85ae19fd31d164c691eb45cc95c561cfdeba237a12e3",
"sha256:77390496f2f32437a721c854897f889abefae0f3009daf90a2f703508d96c920",
"sha256:787532f00543a21b8f4ec3050b4e01b8fe437797903c0156a0b03dfca5e1ba6c",
"sha256:7d5226c70af3ad9569ccc4ccc04ab65be79eeb22c87d7ae789c89e62ef76bbd6",
"sha256:83e7154aa0d17f5c93d27ac01088fd9ab6673e7bab1acbd07cd7a865b980c045",
"sha256:84937d00e2ea03616c40977de20189fa13a9213e5744a3c6afa0e7dd9141d69c",
"sha256:8721f8bedaa722c3c483cc06a1399cbfdb280eadf443aa5d324b0203cef2a75f",
"sha256:8b569f4f511b59518ba6719feb5b8bf0a5d4115e6ac903c89e10a8a9ac656017",
"sha256:8de5328d91859b461899497980d4cc8269e84e2d18640f6ac643886fda9000bf",
"sha256:9060589d0acad1fca048861fa9ee3e8ed060f67894fa885969648ab6e9e99a54",
"sha256:98d8dc1e8133f86d916125deca9780d791b22645f0d62bafe1452d1cd5eac631",
"sha256:9fe17744d60fc404ac61f824118e1e15ce3c2e92eced9b8e22f3c7847acafbf2",
"sha256:a0c5e271058d148d730219ca4f33c5d841c6bd46e05b0da60fea7b516906ccd3",
"sha256:ab79cc13307065a0b3ef087f09f0509996fc605d35d6642bb28e5d85b2648e1e",
"sha256:ab9ccf26cb3fa32747ba2a637a189d2d42386a2fc4afc10dbc7f85922dd23b0f",
"sha256:adb6b5d07d17c32f9d34c9dd4a693637a72323cfcb1f8a52d57033ab2dd21e99",
"sha256:b2bdb038b3f5c284e3919218c580dedc95f592c417a358361450b9519b22f7a8",
"sha256:c23a442973dba3646811c284fce3dddd7fe5c2bd674ac73a122198e8218d6115",
"sha256:c30115cecaf25fdcb67cc71c669d08425207f62d7a2f6d5416057c1460529216",
"sha256:c33ea7c55a73be343f02361795caf52a187357ea07708fb1cae6661ee1d689c8",
"sha256:ccbeaf5b18b173b9d78e332e017b30ba8bedcf03cdce1d13490b82a3f421bc98",
"sha256:ccd6774aa7bebdf9ca608bb0839318757a71b8e0d2cf7b10c002bc8790bd343e",
"sha256:d886de2ea81f513ba2d6820451d33b767a97c37867ba688d42e164b2dbca1362",
"sha256:db64a20e78969fc66665d2e5fc96cb4f4dc80f2137d8fed4b5a650ad569bb60f",
"sha256:db818e33599f7b2e4c6507f2b2c24f45ff539a1b6e4e09163bb6f3cfb4616ca7",
"sha256:dce1c56beef74d9c799a6ed94001693232a1402138292353a8ce302b64f457d9",
"sha256:de38b0b5b86e57efb129d179854e78b65cb8e294a8c75560877869c43aa2415a",
"sha256:de479e30abd2dfd49fdad3bd6953f2d930a45380be5143c0c9f7a1215cffc8cc",
"sha256:df09c80f4bc2bc2efde309af383c3fe8fd8c51fe0519edb350b9c9e0af43ffa4",
"sha256:df6b254e55c8ac2362afaa651e3e53453aa19a095570792346245773b434176e",
"sha256:e58c5d07b1f78dd4cb180c5b3b82465cd281aaeee8aafea0e5d72a4b97922cb1",
"sha256:e5cc288111c450c0a54a74475591b206d3b1cb47dc71bb6200f6be8b1337184c",
"sha256:eee724176b5bc50ee64905f559345448119b860a30b9489bd7a073f61baf925f",
"sha256:f16d1940c0cbc342f1d29d6212a006d172be616d2942c5c41966e8a3ce4c3be1",
"sha256:f25906e4a72d9833e81717c39a39dee7297ff5cb44957d06d177a2ab8ef2ef7f",
"sha256:f3294ce265011547630a59c20085fcb6af8cc5fa1fa44a203251f7d86cd5d913",
"sha256:f337486742c700b102d640830aab3faf2848bed966b479a39e6783edd4ab1c6c",
"sha256:f51c9d173e5fa4b12d06ddca09a41cabbdeb660471dbe55432423eec095709ab",
"sha256:f68025d6ba1816428b7de615c80f61cb03d5b7061158d4ced7696657a64aa59c",
"sha256:f74f6ffdc633aefecbc80282242a5395058db9d1247fa7dd2f070ef84dc82583",
"sha256:f864b412557e69a6b953d62c01a0ed0ee342666298aa7f2a29af526bfa80f6e9",
"sha256:f923e94e93a37fd990e8336e0b9bedea533e7cbed14e0c572bf9357ef2a70681",
"sha256:faa3dd7f4620ab5e5da7a0789d0aac78a9ad0376f102409d442ec5a4179e200a",
"sha256:fd2bb86f40962d53a91def15a2f7684c62e081a7b96ec74ed0259c34b15973b9"
],
"markers": "python_version >= '3.8'",
"version": "==1.15.2"
"markers": "python_version >= '3.9'",
"version": "==1.15.4"
}
},
"develop": {
......
No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment