Arthour commited on
Commit
de0cb94
1 Parent(s): 54a1079

37hkbqf: Refactoring + Request log

Browse files
app.py DELETED
@@ -1,107 +0,0 @@
1
- import gradio as gr
2
- import os
3
-
4
- import requests
5
-
6
- from spacy import displacy
7
- import streamlit as st
8
-
9
- os.system("python -m spacy download en_core_web_md")
10
- import spacy
11
-
12
- # entities group method
13
- # https://huggingface.co/spaces/crabz/sk-ner/blob/main/app.py
14
-
15
- options = {"ents": ["Observation",
16
- "Evaluation"],
17
- "colors": {
18
- "Observation": "#9bddff",
19
- "Evaluation": "#f08080",
20
- }
21
-
22
- }
23
-
24
- nlp = spacy.load("en_core_web_md")
25
-
26
-
27
- def postprocess(classifications):
28
- entities = []
29
- for i in range(len(classifications)):
30
- if classifications[i]['entity'] != 0:
31
- if classifications[i]['entity'][0] == 'B':
32
- j = i + 1
33
- while j < len(classifications) and classifications[j]['entity'][0] == 'I':
34
- j += 1
35
- entities.append((classifications[i]['entity'].split('-')[1], classifications[i]['start'],
36
- classifications[j - 1]['end']))
37
- while True:
38
- merged = False
39
- to_remove = []
40
- merged_entities = []
41
- for i in range(len(entities)):
42
- for j in range(i + 1, len(entities)):
43
- if entities[i] != entities[j] and entities[i][0] == entities[j][0] and \
44
- (entities[i][2] == entities[j][1] or entities[i][1] == entities[j][2]):
45
- to_remove.append(entities[i])
46
- to_remove.append(entities[j])
47
-
48
- new_start = min(entities[i][1], entities[j][1])
49
- new_end = max(entities[i][2], entities[j][2])
50
- merged_entities.append((entities[i][0], new_start, new_end))
51
- merged = True
52
- break
53
- if merged:
54
- break
55
- for ent in to_remove:
56
- entities.remove(ent)
57
- entities += merged_entities
58
- if not merged:
59
- break
60
- return entities
61
-
62
-
63
- def set_entities(sentence, entities):
64
- doc = nlp(sentence)
65
- ents = []
66
- for label, start, end in entities:
67
- ents.append(doc.char_span(start, end, label))
68
- try:
69
- doc.ents = ents
70
- except TypeError:
71
- pass
72
- return doc
73
-
74
-
75
- def apply_ner(input_text_message: str):
76
- auth_endpoint_token = st.secrets["auth_endpoint_token"]
77
- endpoint_url = st.secrets["endpoint_url"]
78
-
79
- headers = {
80
- 'Authorization': auth_endpoint_token,
81
- 'Content-Type': 'application/json',
82
- }
83
-
84
- json_data = {
85
- 'inputs': input_text_message,
86
- }
87
-
88
- response = requests.post(endpoint_url, headers=headers, json=json_data)
89
-
90
- classifications = response.json()
91
- entities = postprocess(classifications)
92
- doc = set_entities(input_text_message, entities)
93
- displacy_html = displacy.render(doc, style="ent", options=options)
94
- return displacy_html
95
-
96
-
97
- examples = ['Things are complicated because we still live together but we have separate lives',
98
- 'My dad is a monster and took his anger out on my mom by verbally abusing her and when she left he eventually moved on to my brother',
99
- 'A two months ago, she was chatting with some random guy',
100
- 'Not I have a horrid relationship with my brother we’ve never gotten along and probably never will',
101
- 'I was outside trying to leave and he caught me to explain why Im so rude',
102
- ]
103
-
104
- iface = gr.Interface(fn=apply_ner, inputs=gr.inputs.Textbox(lines=5, placeholder="Enter your text here",
105
- label='Check your text for compliance with the NVC rules'),
106
- outputs="html", examples=examples)
107
- iface.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/__init__.py ADDED
File without changes
app/classificator.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from dataclasses import dataclass
2
+ from typing import List, Dict, Any
3
+
4
+ import requests
5
+
6
+
7
+ class ClassificationError(Exception):
8
+ pass
9
+
10
+
11
+ @dataclass
12
+ class Classification:
13
+ entity: str
14
+ start: int
15
+ end: int
16
+
17
+ def dict(self) -> Dict[str, Any]:
18
+ return {
19
+ 'entity': self.entity,
20
+ 'start': self.start,
21
+ 'end': self.end
22
+ }
23
+
24
+
25
+ class Classificator:
26
+
27
+ def __init__(self, config: Dict[str, Any]):
28
+ """
29
+ Initialize the classificator with the given configuration
30
+ """
31
+ self._config = config
32
+
33
+ def classify(self, text: str) -> List[Any]:
34
+ raw_data = self.send_request(text)
35
+ return self.post_process(raw_data)
36
+
37
+ def send_request(self, text: str) -> List[Dict[str, Any]]:
38
+ """
39
+ Process the text and return a list of dictionaries with the following keys
40
+ """
41
+
42
+ headers = {
43
+ 'Authorization': self._config['auth_endpoint_token'],
44
+ 'Content-Type': 'application/json',
45
+ }
46
+ try:
47
+ response = requests.post(self._config['endpoint_url'], headers=headers, json={'inputs': text})
48
+ return response.json()
49
+ except Exception:
50
+ raise ClassificationError('Classification failed')
51
+
52
+ @staticmethod
53
+ def post_process(raw_data: List[Dict[str, Any]]) -> List[Classification]:
54
+ """
55
+ Process the raw data and return a list of dictionaries with the following keys
56
+
57
+ raw_data is a list of dictionaries with the following keys
58
+ {'entity': 'B-Evaluation', 'score': 0.86011535, 'index': 1, 'word': 'Things', 'start': 0, 'end': 6}
59
+
60
+ result is a list of classifications with the following keys
61
+ Classification(entity='Evaluation', start=0, end=6)
62
+ """
63
+ classifications = []
64
+
65
+ current_entity = None
66
+ for item in raw_data:
67
+ if current_entity is None or current_entity != item['entity'][2:]:
68
+ current_entity = item['entity'][2:]
69
+ classifications.append(
70
+ Classification(
71
+ entity=current_entity,
72
+ start=item['start'],
73
+ end=item['end']
74
+ )
75
+ )
76
+ else:
77
+ classifications[-1].end = item['end']
78
+ return classifications
app/models/__init__.py ADDED
File without changes
app/models/request.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from datetime import datetime
2
+
3
+ from pony.orm import PrimaryKey, Required, Json
4
+
5
+ from app.settings import db
6
+
7
+
8
+ class Request(db.Entity):
9
+ id = PrimaryKey(int, auto=True)
10
+ hash = Required(str)
11
+ text = Required(str)
12
+ rating = Required(int, sql_default=0)
13
+ result = Required(Json)
14
+ created_at = Required(datetime, default=datetime.now)
15
+ updated_at = Required(datetime, default=datetime.now)
app/settings.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from pony.orm import Database
3
+
4
+ db = Database()
5
+ db.bind(
6
+ provider='postgres',
7
+ user=st.secrets['pg_user'],
8
+ password=st.secrets['pg_password'],
9
+ host=st.secrets['pg_host'],
10
+ port=st.secrets['pg_port'],
11
+ database=st.secrets['pg_database']
12
+ )
13
+ AUTH_ENDPOINT_TOKEN = st.secrets["auth_endpoint_token"]
14
+ ENDPOINT_URL = st.secrets["endpoint_url"]
application.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import hashlib
2
+ import logging
3
+ import os
4
+ from datetime import datetime
5
+ from typing import Dict, Any, List
6
+
7
+ import gradio as gr
8
+ import spacy
9
+ from pony.orm import db_session
10
+ from spacy import displacy
11
+
12
+ from app.classificator import Classificator, Classification
13
+ from app.models.request import Request
14
+ from app.settings import AUTH_ENDPOINT_TOKEN, ENDPOINT_URL, db
15
+
16
+
17
+ class Application:
18
+ examples = [
19
+ 'Things are complicated because we still live together but we have separate lives',
20
+ 'My dad is a monster and took his anger out on my mom by verbally abusing her and when she left he '
21
+ 'eventually moved on to my brother',
22
+ 'A two months ago, she was chatting with some random guy',
23
+ 'Not I have a horrid relationship with my brother we’ve never gotten along and probably never will',
24
+ 'I was outside trying to leave and he caught me to explain why Im so rude',
25
+ ]
26
+
27
+ def __init__(self, classificator: Classificator, options: Dict[str, Any]):
28
+ self.options = options
29
+ self.classificator = classificator
30
+ self.nlp = spacy.load("en_core_web_md")
31
+
32
+ def handle(self, input_text: str) -> str:
33
+ """
34
+ Handle the input text and return the result as rendered html
35
+ """
36
+ if input_text is None or input_text == '':
37
+ return ''
38
+
39
+ classifications = self.classificator.classify(input_text)
40
+ request = self.log_request(input_text, classifications)
41
+ # TODO: тут надо взять хеш или ид, прокинуть его для формирования кнопок с оценкой
42
+ return self.render(input_text, classifications)
43
+
44
+ @staticmethod
45
+ @db_session
46
+ def log_request(input_text: str, classifications: List[Classification]) -> Request:
47
+ """
48
+ Log the request to the database
49
+ """
50
+ return Request(
51
+ text=input_text,
52
+ hash=hashlib.md5(input_text.encode()).hexdigest(),
53
+ created_at=datetime.now(),
54
+ updated_at=datetime.now(),
55
+ rating=0,
56
+ result=[c.dict() for c in classifications]
57
+ )
58
+
59
+ def render(self, input_text: str, classifications: List[Classification]) -> str:
60
+ """
61
+ Render the input text and the classifications as html text with labels
62
+ """
63
+ document = self.nlp(input_text)
64
+ try:
65
+ document.ents = [
66
+ document.char_span(classification.start, classification.end, classification.entity) for
67
+ classification in classifications
68
+ ]
69
+ except Exception as exc:
70
+ logging.exception(exc)
71
+ return displacy.render(document, style="ent", options=self.options)
72
+
73
+ def run(self):
74
+ iface = gr.Interface(
75
+ fn=self.handle, inputs=gr.Textbox(
76
+ lines=5, placeholder="Enter your text here",
77
+ label='Check your text for compliance with the NVC rules'),
78
+ outputs=["html"], examples=self.examples
79
+ )
80
+ iface.launch()
81
+
82
+
83
+ if __name__ == '__main__':
84
+ os.system("python -m spacy download en_core_web_md")
85
+ db.generate_mapping(create_tables=True)
86
+ application = Application(
87
+ classificator=Classificator(
88
+ config={
89
+ 'auth_endpoint_token': AUTH_ENDPOINT_TOKEN,
90
+ 'endpoint_url': ENDPOINT_URL
91
+ }
92
+ ),
93
+ options={"ents": ["Observation", "Evaluation"], "colors": {"Observation": "#9bddff", "Evaluation": "#f08080"}}
94
+ )
95
+ application.run()
poetry.lock ADDED
@@ -0,0 +1,1570 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [[package]]
2
+ name = "aiohttp"
3
+ version = "3.8.3"
4
+ description = "Async http client/server framework (asyncio)"
5
+ category = "main"
6
+ optional = false
7
+ python-versions = ">=3.6"
8
+
9
+ [package.dependencies]
10
+ aiosignal = ">=1.1.2"
11
+ async-timeout = ">=4.0.0a3,<5.0"
12
+ attrs = ">=17.3.0"
13
+ charset-normalizer = ">=2.0,<3.0"
14
+ frozenlist = ">=1.1.1"
15
+ multidict = ">=4.5,<7.0"
16
+ yarl = ">=1.0,<2.0"
17
+
18
+ [package.extras]
19
+ speedups = ["aiodns", "brotli", "cchardet"]
20
+
21
+ [[package]]
22
+ name = "aiosignal"
23
+ version = "1.3.1"
24
+ description = "aiosignal: a list of registered asynchronous callbacks"
25
+ category = "main"
26
+ optional = false
27
+ python-versions = ">=3.7"
28
+
29
+ [package.dependencies]
30
+ frozenlist = ">=1.1.0"
31
+
32
+ [[package]]
33
+ name = "altair"
34
+ version = "4.2.0"
35
+ description = "Altair: A declarative statistical visualization library for Python."
36
+ category = "main"
37
+ optional = false
38
+ python-versions = ">=3.7"
39
+
40
+ [package.dependencies]
41
+ entrypoints = "*"
42
+ jinja2 = "*"
43
+ jsonschema = ">=3.0"
44
+ numpy = "*"
45
+ pandas = ">=0.18"
46
+ toolz = "*"
47
+
48
+ [package.extras]
49
+ dev = ["black", "docutils", "ipython", "flake8", "pytest", "sphinx", "mistune (<2.0.0)", "m2r", "vega-datasets", "recommonmark"]
50
+
51
+ [[package]]
52
+ name = "anyio"
53
+ version = "3.6.2"
54
+ description = "High level compatibility layer for multiple asynchronous event loop implementations"
55
+ category = "main"
56
+ optional = false
57
+ python-versions = ">=3.6.2"
58
+
59
+ [package.dependencies]
60
+ idna = ">=2.8"
61
+ sniffio = ">=1.1"
62
+
63
+ [package.extras]
64
+ doc = ["packaging", "sphinx-rtd-theme", "sphinx-autodoc-typehints (>=1.2.0)"]
65
+ test = ["coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "contextlib2", "uvloop (<0.15)", "mock (>=4)", "uvloop (>=0.15)"]
66
+ trio = ["trio (>=0.16,<0.22)"]
67
+
68
+ [[package]]
69
+ name = "async-timeout"
70
+ version = "4.0.2"
71
+ description = "Timeout context manager for asyncio programs"
72
+ category = "main"
73
+ optional = false
74
+ python-versions = ">=3.6"
75
+
76
+ [[package]]
77
+ name = "attrs"
78
+ version = "22.1.0"
79
+ description = "Classes Without Boilerplate"
80
+ category = "main"
81
+ optional = false
82
+ python-versions = ">=3.5"
83
+
84
+ [package.extras]
85
+ dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit", "cloudpickle"]
86
+ docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"]
87
+ tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "zope.interface", "cloudpickle"]
88
+ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "mypy (>=0.900,!=0.940)", "pytest-mypy-plugins", "cloudpickle"]
89
+
90
+ [[package]]
91
+ name = "bcrypt"
92
+ version = "4.0.1"
93
+ description = "Modern password hashing for your software and your servers"
94
+ category = "main"
95
+ optional = false
96
+ python-versions = ">=3.6"
97
+
98
+ [package.extras]
99
+ tests = ["pytest (>=3.2.1,!=3.3.0)"]
100
+ typecheck = ["mypy"]
101
+
102
+ [[package]]
103
+ name = "blinker"
104
+ version = "1.5"
105
+ description = "Fast, simple object-to-object and broadcast signaling"
106
+ category = "main"
107
+ optional = false
108
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
109
+
110
+ [[package]]
111
+ name = "blis"
112
+ version = "0.7.9"
113
+ description = "The Blis BLAS-like linear algebra library, as a self-contained C-extension."
114
+ category = "main"
115
+ optional = false
116
+ python-versions = "*"
117
+
118
+ [package.dependencies]
119
+ numpy = ">=1.15.0"
120
+
121
+ [[package]]
122
+ name = "cachetools"
123
+ version = "5.2.0"
124
+ description = "Extensible memoizing collections and decorators"
125
+ category = "main"
126
+ optional = false
127
+ python-versions = "~=3.7"
128
+
129
+ [[package]]
130
+ name = "catalogue"
131
+ version = "2.0.8"
132
+ description = "Super lightweight function registries for your library"
133
+ category = "main"
134
+ optional = false
135
+ python-versions = ">=3.6"
136
+
137
+ [[package]]
138
+ name = "certifi"
139
+ version = "2022.9.24"
140
+ description = "Python package for providing Mozilla's CA Bundle."
141
+ category = "main"
142
+ optional = false
143
+ python-versions = ">=3.6"
144
+
145
+ [[package]]
146
+ name = "cffi"
147
+ version = "1.15.1"
148
+ description = "Foreign Function Interface for Python calling C code."
149
+ category = "main"
150
+ optional = false
151
+ python-versions = "*"
152
+
153
+ [package.dependencies]
154
+ pycparser = "*"
155
+
156
+ [[package]]
157
+ name = "charset-normalizer"
158
+ version = "2.1.1"
159
+ description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
160
+ category = "main"
161
+ optional = false
162
+ python-versions = ">=3.6.0"
163
+
164
+ [package.extras]
165
+ unicode_backport = ["unicodedata2"]
166
+
167
+ [[package]]
168
+ name = "click"
169
+ version = "8.1.3"
170
+ description = "Composable command line interface toolkit"
171
+ category = "main"
172
+ optional = false
173
+ python-versions = ">=3.7"
174
+
175
+ [package.dependencies]
176
+ colorama = {version = "*", markers = "platform_system == \"Windows\""}
177
+
178
+ [[package]]
179
+ name = "colorama"
180
+ version = "0.4.6"
181
+ description = "Cross-platform colored terminal text."
182
+ category = "main"
183
+ optional = false
184
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
185
+
186
+ [[package]]
187
+ name = "commonmark"
188
+ version = "0.9.1"
189
+ description = "Python parser for the CommonMark Markdown spec"
190
+ category = "main"
191
+ optional = false
192
+ python-versions = "*"
193
+
194
+ [package.extras]
195
+ test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
196
+
197
+ [[package]]
198
+ name = "confection"
199
+ version = "0.0.3"
200
+ description = "The sweetest config system for Python"
201
+ category = "main"
202
+ optional = false
203
+ python-versions = ">=3.6"
204
+
205
+ [package.dependencies]
206
+ pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<1.11.0"
207
+ srsly = ">=2.4.0,<3.0.0"
208
+
209
+ [[package]]
210
+ name = "contourpy"
211
+ version = "1.0.6"
212
+ description = "Python library for calculating contours of 2D quadrilateral grids"
213
+ category = "main"
214
+ optional = false
215
+ python-versions = ">=3.7"
216
+
217
+ [package.dependencies]
218
+ numpy = ">=1.16"
219
+
220
+ [package.extras]
221
+ bokeh = ["bokeh", "selenium"]
222
+ docs = ["docutils (<0.18)", "sphinx (<=5.2.0)", "sphinx-rtd-theme"]
223
+ test = ["pytest", "matplotlib", "pillow", "flake8", "isort"]
224
+ test-minimal = ["pytest"]
225
+ test-no-codebase = ["pytest", "matplotlib", "pillow"]
226
+
227
+ [[package]]
228
+ name = "cryptography"
229
+ version = "38.0.4"
230
+ description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
231
+ category = "main"
232
+ optional = false
233
+ python-versions = ">=3.6"
234
+
235
+ [package.dependencies]
236
+ cffi = ">=1.12"
237
+
238
+ [package.extras]
239
+ docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
240
+ docstest = ["pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
241
+ pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
242
+ sdist = ["setuptools-rust (>=0.11.4)"]
243
+ ssh = ["bcrypt (>=3.1.5)"]
244
+ test = ["pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
245
+
246
+ [[package]]
247
+ name = "cycler"
248
+ version = "0.11.0"
249
+ description = "Composable style cycles"
250
+ category = "main"
251
+ optional = false
252
+ python-versions = ">=3.6"
253
+
254
+ [[package]]
255
+ name = "cymem"
256
+ version = "2.0.7"
257
+ description = "Manage calls to calloc/free through Cython"
258
+ category = "main"
259
+ optional = false
260
+ python-versions = "*"
261
+
262
+ [[package]]
263
+ name = "decorator"
264
+ version = "5.1.1"
265
+ description = "Decorators for Humans"
266
+ category = "main"
267
+ optional = false
268
+ python-versions = ">=3.5"
269
+
270
+ [[package]]
271
+ name = "entrypoints"
272
+ version = "0.4"
273
+ description = "Discover and load entry points from installed packages."
274
+ category = "main"
275
+ optional = false
276
+ python-versions = ">=3.6"
277
+
278
+ [[package]]
279
+ name = "fastapi"
280
+ version = "0.88.0"
281
+ description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
282
+ category = "main"
283
+ optional = false
284
+ python-versions = ">=3.7"
285
+
286
+ [package.dependencies]
287
+ pydantic = ">=1.6.2,<1.7 || >1.7,<1.7.1 || >1.7.1,<1.7.2 || >1.7.2,<1.7.3 || >1.7.3,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0"
288
+ starlette = "0.22.0"
289
+
290
+ [package.extras]
291
+ all = ["email-validator (>=1.1.1)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"]
292
+ dev = ["pre-commit (>=2.17.0,<3.0.0)", "ruff (==0.0.138)", "uvicorn[standard] (>=0.12.0,<0.19.0)"]
293
+ doc = ["mdx-include (>=1.4.1,<2.0.0)", "mkdocs-markdownextradata-plugin (>=0.1.7,<0.3.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "mkdocs (>=1.1.2,<2.0.0)", "pyyaml (>=5.3.1,<7.0.0)", "typer[all] (>=0.6.1,<0.7.0)"]
294
+ test = ["anyio[trio] (>=3.2.1,<4.0.0)", "black (==22.10.0)", "coverage[toml] (>=6.5.0,<7.0)", "databases[sqlite] (>=0.3.2,<0.7.0)", "email-validator (>=1.1.1,<2.0.0)", "flask (>=1.1.2,<3.0.0)", "httpx (>=0.23.0,<0.24.0)", "isort (>=5.0.6,<6.0.0)", "mypy (==0.982)", "orjson (>=3.2.1,<4.0.0)", "passlib[bcrypt] (>=1.7.2,<2.0.0)", "peewee (>=3.13.3,<4.0.0)", "pytest (>=7.1.3,<8.0.0)", "python-jose[cryptography] (>=3.3.0,<4.0.0)", "python-multipart (>=0.0.5,<0.0.6)", "pyyaml (>=5.3.1,<7.0.0)", "ruff (==0.0.138)", "sqlalchemy (>=1.3.18,<=1.4.41)", "types-orjson (==3.6.2)", "types-ujson (==5.5.0)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0,<6.0.0)"]
295
+
296
+ [[package]]
297
+ name = "ffmpy"
298
+ version = "0.3.0"
299
+ description = "A simple Python wrapper for ffmpeg"
300
+ category = "main"
301
+ optional = false
302
+ python-versions = "*"
303
+
304
+ [[package]]
305
+ name = "fonttools"
306
+ version = "4.38.0"
307
+ description = "Tools to manipulate font files"
308
+ category = "main"
309
+ optional = false
310
+ python-versions = ">=3.7"
311
+
312
+ [package.extras]
313
+ all = ["fs (>=2.2.0,<3)", "lxml (>=4.0,<5)", "zopfli (>=0.1.4)", "lz4 (>=1.7.4.2)", "matplotlib", "sympy", "skia-pathops (>=0.5.0)", "uharfbuzz (>=0.23.0)", "brotlicffi (>=0.8.0)", "scipy", "brotli (>=1.0.1)", "munkres", "unicodedata2 (>=14.0.0)", "xattr"]
314
+ graphite = ["lz4 (>=1.7.4.2)"]
315
+ interpolatable = ["scipy", "munkres"]
316
+ lxml = ["lxml (>=4.0,<5)"]
317
+ pathops = ["skia-pathops (>=0.5.0)"]
318
+ plot = ["matplotlib"]
319
+ repacker = ["uharfbuzz (>=0.23.0)"]
320
+ symfont = ["sympy"]
321
+ type1 = ["xattr"]
322
+ ufo = ["fs (>=2.2.0,<3)"]
323
+ unicode = ["unicodedata2 (>=14.0.0)"]
324
+ woff = ["zopfli (>=0.1.4)", "brotlicffi (>=0.8.0)", "brotli (>=1.0.1)"]
325
+
326
+ [[package]]
327
+ name = "frozenlist"
328
+ version = "1.3.3"
329
+ description = "A list-like structure which implements collections.abc.MutableSequence"
330
+ category = "main"
331
+ optional = false
332
+ python-versions = ">=3.7"
333
+
334
+ [[package]]
335
+ name = "fsspec"
336
+ version = "2022.11.0"
337
+ description = "File-system specification"
338
+ category = "main"
339
+ optional = false
340
+ python-versions = ">=3.7"
341
+
342
+ [package.extras]
343
+ abfs = ["adlfs"]
344
+ adl = ["adlfs"]
345
+ arrow = ["pyarrow (>=1)"]
346
+ dask = ["dask", "distributed"]
347
+ dropbox = ["dropboxdrivefs", "requests", "dropbox"]
348
+ entrypoints = ["importlib-metadata"]
349
+ fuse = ["fusepy"]
350
+ gcs = ["gcsfs"]
351
+ git = ["pygit2"]
352
+ github = ["requests"]
353
+ gs = ["gcsfs"]
354
+ gui = ["panel"]
355
+ hdfs = ["pyarrow (>=1)"]
356
+ http = ["requests", "aiohttp (!=4.0.0a0,!=4.0.0a1)"]
357
+ libarchive = ["libarchive-c"]
358
+ oci = ["ocifs"]
359
+ s3 = ["s3fs"]
360
+ sftp = ["paramiko"]
361
+ smb = ["smbprotocol"]
362
+ ssh = ["paramiko"]
363
+ tqdm = ["tqdm"]
364
+
365
+ [[package]]
366
+ name = "gitdb"
367
+ version = "4.0.10"
368
+ description = "Git Object Database"
369
+ category = "main"
370
+ optional = false
371
+ python-versions = ">=3.7"
372
+
373
+ [package.dependencies]
374
+ smmap = ">=3.0.1,<6"
375
+
376
+ [[package]]
377
+ name = "gitpython"
378
+ version = "3.1.29"
379
+ description = "GitPython is a python library used to interact with Git repositories"
380
+ category = "main"
381
+ optional = false
382
+ python-versions = ">=3.7"
383
+
384
+ [package.dependencies]
385
+ gitdb = ">=4.0.1,<5"
386
+
387
+ [[package]]
388
+ name = "gradio"
389
+ version = "3.12.0"
390
+ description = "Python library for easily interacting with trained machine learning models"
391
+ category = "main"
392
+ optional = false
393
+ python-versions = ">=3.7"
394
+
395
+ [package.dependencies]
396
+ aiohttp = "*"
397
+ fastapi = "*"
398
+ ffmpy = "*"
399
+ fsspec = "*"
400
+ h11 = ">=0.11,<0.13"
401
+ httpx = "*"
402
+ jinja2 = "*"
403
+ markdown-it-py = {version = "*", extras = ["linkify", "plugins"]}
404
+ matplotlib = "*"
405
+ numpy = "*"
406
+ orjson = "*"
407
+ pandas = "*"
408
+ paramiko = "*"
409
+ pillow = "*"
410
+ pycryptodome = "*"
411
+ pydantic = "*"
412
+ pydub = "*"
413
+ python-multipart = "*"
414
+ pyyaml = "*"
415
+ requests = "*"
416
+ uvicorn = "*"
417
+ websockets = ">=10.0"
418
+
419
+ [[package]]
420
+ name = "h11"
421
+ version = "0.12.0"
422
+ description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
423
+ category = "main"
424
+ optional = false
425
+ python-versions = ">=3.6"
426
+
427
+ [[package]]
428
+ name = "httpcore"
429
+ version = "0.15.0"
430
+ description = "A minimal low-level HTTP client."
431
+ category = "main"
432
+ optional = false
433
+ python-versions = ">=3.7"
434
+
435
+ [package.dependencies]
436
+ anyio = ">=3.0.0,<4.0.0"
437
+ certifi = "*"
438
+ h11 = ">=0.11,<0.13"
439
+ sniffio = ">=1.0.0,<2.0.0"
440
+
441
+ [package.extras]
442
+ http2 = ["h2 (>=3,<5)"]
443
+ socks = ["socksio (>=1.0.0,<2.0.0)"]
444
+
445
+ [[package]]
446
+ name = "httpx"
447
+ version = "0.23.1"
448
+ description = "The next generation HTTP client."
449
+ category = "main"
450
+ optional = false
451
+ python-versions = ">=3.7"
452
+
453
+ [package.dependencies]
454
+ certifi = "*"
455
+ httpcore = ">=0.15.0,<0.17.0"
456
+ rfc3986 = {version = ">=1.3,<2", extras = ["idna2008"]}
457
+ sniffio = "*"
458
+
459
+ [package.extras]
460
+ brotli = ["brotli", "brotlicffi"]
461
+ cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<13)"]
462
+ http2 = ["h2 (>=3,<5)"]
463
+ socks = ["socksio (>=1.0.0,<2.0.0)"]
464
+
465
+ [[package]]
466
+ name = "idna"
467
+ version = "3.4"
468
+ description = "Internationalized Domain Names in Applications (IDNA)"
469
+ category = "main"
470
+ optional = false
471
+ python-versions = ">=3.5"
472
+
473
+ [[package]]
474
+ name = "importlib-metadata"
475
+ version = "5.1.0"
476
+ description = "Read metadata from Python packages"
477
+ category = "main"
478
+ optional = false
479
+ python-versions = ">=3.7"
480
+
481
+ [package.dependencies]
482
+ zipp = ">=0.5"
483
+
484
+ [package.extras]
485
+ docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"]
486
+ perf = ["ipython"]
487
+ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "packaging", "pyfakefs", "flufl.flake8", "pytest-perf (>=0.9.2)", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "pytest-flake8", "importlib-resources (>=1.3)"]
488
+
489
+ [[package]]
490
+ name = "jinja2"
491
+ version = "3.1.2"
492
+ description = "A very fast and expressive template engine."
493
+ category = "main"
494
+ optional = false
495
+ python-versions = ">=3.7"
496
+
497
+ [package.dependencies]
498
+ MarkupSafe = ">=2.0"
499
+
500
+ [package.extras]
501
+ i18n = ["Babel (>=2.7)"]
502
+
503
+ [[package]]
504
+ name = "jsonschema"
505
+ version = "4.17.3"
506
+ description = "An implementation of JSON Schema validation for Python"
507
+ category = "main"
508
+ optional = false
509
+ python-versions = ">=3.7"
510
+
511
+ [package.dependencies]
512
+ attrs = ">=17.4.0"
513
+ pyrsistent = ">=0.14.0,<0.17.0 || >0.17.0,<0.17.1 || >0.17.1,<0.17.2 || >0.17.2"
514
+
515
+ [package.extras]
516
+ format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"]
517
+ format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=1.11)"]
518
+
519
+ [[package]]
520
+ name = "kiwisolver"
521
+ version = "1.4.4"
522
+ description = "A fast implementation of the Cassowary constraint solver"
523
+ category = "main"
524
+ optional = false
525
+ python-versions = ">=3.7"
526
+
527
+ [[package]]
528
+ name = "langcodes"
529
+ version = "3.3.0"
530
+ description = "Tools for labeling human languages with IETF language tags"
531
+ category = "main"
532
+ optional = false
533
+ python-versions = ">=3.6"
534
+
535
+ [package.extras]
536
+ data = ["language-data (>=1.1,<2.0)"]
537
+
538
+ [[package]]
539
+ name = "linkify-it-py"
540
+ version = "1.0.3"
541
+ description = "Links recognition library with FULL unicode support."
542
+ category = "main"
543
+ optional = false
544
+ python-versions = ">=3.6"
545
+
546
+ [package.dependencies]
547
+ uc-micro-py = "*"
548
+
549
+ [package.extras]
550
+ benchmark = ["pytest", "pytest-benchmark"]
551
+ dev = ["pre-commit", "isort", "flake8", "black"]
552
+ doc = ["sphinx", "sphinx-book-theme", "myst-parser"]
553
+ test = ["coverage", "pytest", "pytest-cov"]
554
+
555
+ [[package]]
556
+ name = "markdown-it-py"
557
+ version = "2.1.0"
558
+ description = "Python port of markdown-it. Markdown parsing, done right!"
559
+ category = "main"
560
+ optional = false
561
+ python-versions = ">=3.7"
562
+
563
+ [package.dependencies]
564
+ linkify-it-py = {version = ">=1.0,<2.0", optional = true, markers = "extra == \"linkify\""}
565
+ mdit-py-plugins = {version = "*", optional = true, markers = "extra == \"plugins\""}
566
+ mdurl = ">=0.1,<1.0"
567
+
568
+ [package.extras]
569
+ benchmarking = ["psutil", "pytest", "pytest-benchmark (>=3.2,<4.0)"]
570
+ code_style = ["pre-commit (==2.6)"]
571
+ compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.3.6,<3.4.0)", "mistletoe (>=0.8.1,<0.9.0)", "mistune (>=2.0.2,<2.1.0)", "panflute (>=2.1.3,<2.2.0)"]
572
+ linkify = ["linkify-it-py (>=1.0,<2.0)"]
573
+ plugins = ["mdit-py-plugins"]
574
+ profiling = ["gprof2dot"]
575
+ rtd = ["attrs", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx-book-theme"]
576
+ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
577
+
578
+ [[package]]
579
+ name = "markupsafe"
580
+ version = "2.1.1"
581
+ description = "Safely add untrusted strings to HTML/XML markup."
582
+ category = "main"
583
+ optional = false
584
+ python-versions = ">=3.7"
585
+
586
+ [[package]]
587
+ name = "matplotlib"
588
+ version = "3.6.2"
589
+ description = "Python plotting package"
590
+ category = "main"
591
+ optional = false
592
+ python-versions = ">=3.8"
593
+
594
+ [package.dependencies]
595
+ contourpy = ">=1.0.1"
596
+ cycler = ">=0.10"
597
+ fonttools = ">=4.22.0"
598
+ kiwisolver = ">=1.0.1"
599
+ numpy = ">=1.19"
600
+ packaging = ">=20.0"
601
+ pillow = ">=6.2.0"
602
+ pyparsing = ">=2.2.1"
603
+ python-dateutil = ">=2.7"
604
+ setuptools_scm = ">=7"
605
+
606
+ [[package]]
607
+ name = "mdit-py-plugins"
608
+ version = "0.3.2"
609
+ description = "Collection of plugins for markdown-it-py"
610
+ category = "main"
611
+ optional = false
612
+ python-versions = ">=3.7"
613
+
614
+ [package.dependencies]
615
+ markdown-it-py = ">=1.0.0,<3.0.0"
616
+
617
+ [package.extras]
618
+ code_style = ["pre-commit"]
619
+ rtd = ["attrs", "myst-parser (>=0.16.1,<0.17.0)", "sphinx-book-theme (>=0.1.0,<0.2.0)"]
620
+ testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"]
621
+
622
+ [[package]]
623
+ name = "mdurl"
624
+ version = "0.1.2"
625
+ description = "Markdown URL utilities"
626
+ category = "main"
627
+ optional = false
628
+ python-versions = ">=3.7"
629
+
630
+ [[package]]
631
+ name = "multidict"
632
+ version = "6.0.3"
633
+ description = "multidict implementation"
634
+ category = "main"
635
+ optional = false
636
+ python-versions = ">=3.7"
637
+
638
+ [[package]]
639
+ name = "murmurhash"
640
+ version = "1.0.9"
641
+ description = "Cython bindings for MurmurHash"
642
+ category = "main"
643
+ optional = false
644
+ python-versions = ">=3.6"
645
+
646
+ [[package]]
647
+ name = "numpy"
648
+ version = "1.23.5"
649
+ description = "NumPy is the fundamental package for array computing with Python."
650
+ category = "main"
651
+ optional = false
652
+ python-versions = ">=3.8"
653
+
654
+ [[package]]
655
+ name = "orjson"
656
+ version = "3.8.3"
657
+ description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy"
658
+ category = "main"
659
+ optional = false
660
+ python-versions = ">=3.7"
661
+
662
+ [[package]]
663
+ name = "packaging"
664
+ version = "21.3"
665
+ description = "Core utilities for Python packages"
666
+ category = "main"
667
+ optional = false
668
+ python-versions = ">=3.6"
669
+
670
+ [package.dependencies]
671
+ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
672
+
673
+ [[package]]
674
+ name = "pandas"
675
+ version = "1.5.2"
676
+ description = "Powerful data structures for data analysis, time series, and statistics"
677
+ category = "main"
678
+ optional = false
679
+ python-versions = ">=3.8"
680
+
681
+ [package.dependencies]
682
+ numpy = [
683
+ {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
684
+ {version = ">=1.23.2", markers = "python_version >= \"3.11\""},
685
+ ]
686
+ python-dateutil = ">=2.8.1"
687
+ pytz = ">=2020.1"
688
+
689
+ [package.extras]
690
+ test = ["hypothesis (>=5.5.3)", "pytest (>=6.0)", "pytest-xdist (>=1.31)"]
691
+
692
+ [[package]]
693
+ name = "paramiko"
694
+ version = "2.12.0"
695
+ description = "SSH2 protocol library"
696
+ category = "main"
697
+ optional = false
698
+ python-versions = "*"
699
+
700
+ [package.dependencies]
701
+ bcrypt = ">=3.1.3"
702
+ cryptography = ">=2.5"
703
+ pynacl = ">=1.0.1"
704
+ six = "*"
705
+
706
+ [package.extras]
707
+ all = ["pyasn1 (>=0.1.7)", "pynacl (>=1.0.1)", "bcrypt (>=3.1.3)", "invoke (>=1.3)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
708
+ ed25519 = ["pynacl (>=1.0.1)", "bcrypt (>=3.1.3)"]
709
+ gssapi = ["pyasn1 (>=0.1.7)", "gssapi (>=1.4.1)", "pywin32 (>=2.1.8)"]
710
+ invoke = ["invoke (>=1.3)"]
711
+
712
+ [[package]]
713
+ name = "pathy"
714
+ version = "0.10.0"
715
+ description = "pathlib.Path subclasses for local and cloud bucket storage"
716
+ category = "main"
717
+ optional = false
718
+ python-versions = ">= 3.6"
719
+
720
+ [package.dependencies]
721
+ smart-open = ">=5.2.1,<6.0.0"
722
+ typer = ">=0.3.0,<1.0.0"
723
+
724
+ [package.extras]
725
+ all = ["google-cloud-storage (>=1.26.0,<2.0.0)", "boto3", "azure-storage-blob", "pytest", "pytest-coverage", "mock", "typer-cli"]
726
+ azure = ["azure-storage-blob"]
727
+ gcs = ["google-cloud-storage (>=1.26.0,<2.0.0)"]
728
+ s3 = ["boto3"]
729
+ test = ["pytest", "pytest-coverage", "mock", "typer-cli"]
730
+
731
+ [[package]]
732
+ name = "pillow"
733
+ version = "9.3.0"
734
+ description = "Python Imaging Library (Fork)"
735
+ category = "main"
736
+ optional = false
737
+ python-versions = ">=3.7"
738
+
739
+ [package.extras]
740
+ docs = ["furo", "olefile", "sphinx (>=2.4)", "sphinx-copybutton", "sphinx-issues (>=3.0.1)", "sphinx-removed-in", "sphinxext-opengraph"]
741
+ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "packaging", "pyroma", "pytest", "pytest-cov", "pytest-timeout"]
742
+
743
+ [[package]]
744
+ name = "pony"
745
+ version = "0.7.16"
746
+ description = "Pony Object-Relational Mapper"
747
+ category = "main"
748
+ optional = false
749
+ python-versions = "*"
750
+
751
+ [[package]]
752
+ name = "preshed"
753
+ version = "3.0.8"
754
+ description = "Cython hash table that trusts the keys are pre-hashed"
755
+ category = "main"
756
+ optional = false
757
+ python-versions = ">=3.6"
758
+
759
+ [package.dependencies]
760
+ cymem = ">=2.0.2,<2.1.0"
761
+ murmurhash = ">=0.28.0,<1.1.0"
762
+
763
+ [[package]]
764
+ name = "protobuf"
765
+ version = "3.20.3"
766
+ description = "Protocol Buffers"
767
+ category = "main"
768
+ optional = false
769
+ python-versions = ">=3.7"
770
+
771
+ [[package]]
772
+ name = "psycopg2"
773
+ version = "2.9.5"
774
+ description = "psycopg2 - Python-PostgreSQL Database Adapter"
775
+ category = "main"
776
+ optional = false
777
+ python-versions = ">=3.6"
778
+
779
+ [[package]]
780
+ name = "pyarrow"
781
+ version = "10.0.1"
782
+ description = "Python library for Apache Arrow"
783
+ category = "main"
784
+ optional = false
785
+ python-versions = ">=3.7"
786
+
787
+ [package.dependencies]
788
+ numpy = ">=1.16.6"
789
+
790
+ [[package]]
791
+ name = "pycparser"
792
+ version = "2.21"
793
+ description = "C parser in Python"
794
+ category = "main"
795
+ optional = false
796
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
797
+
798
+ [[package]]
799
+ name = "pycryptodome"
800
+ version = "3.16.0"
801
+ description = "Cryptographic library for Python"
802
+ category = "main"
803
+ optional = false
804
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
805
+
806
+ [[package]]
807
+ name = "pydantic"
808
+ version = "1.10.2"
809
+ description = "Data validation and settings management using python type hints"
810
+ category = "main"
811
+ optional = false
812
+ python-versions = ">=3.7"
813
+
814
+ [package.dependencies]
815
+ typing-extensions = ">=4.1.0"
816
+
817
+ [package.extras]
818
+ dotenv = ["python-dotenv (>=0.10.4)"]
819
+ email = ["email-validator (>=1.0.3)"]
820
+
821
+ [[package]]
822
+ name = "pydeck"
823
+ version = "0.8.0"
824
+ description = "Widget for deck.gl maps"
825
+ category = "main"
826
+ optional = false
827
+ python-versions = ">=3.7"
828
+
829
+ [package.dependencies]
830
+ jinja2 = ">=2.10.1"
831
+ numpy = ">=1.16.4"
832
+
833
+ [package.extras]
834
+ carto = ["pydeck-carto"]
835
+ jupyter = ["ipywidgets (>=7,<8)", "traitlets (>=4.3.2)", "ipython (>=5.8.0)", "ipykernel (>=5.1.2)"]
836
+
837
+ [[package]]
838
+ name = "pydub"
839
+ version = "0.25.1"
840
+ description = "Manipulate audio with an simple and easy high level interface"
841
+ category = "main"
842
+ optional = false
843
+ python-versions = "*"
844
+
845
+ [[package]]
846
+ name = "pygments"
847
+ version = "2.13.0"
848
+ description = "Pygments is a syntax highlighting package written in Python."
849
+ category = "main"
850
+ optional = false
851
+ python-versions = ">=3.6"
852
+
853
+ [package.extras]
854
+ plugins = ["importlib-metadata"]
855
+
856
+ [[package]]
857
+ name = "pympler"
858
+ version = "1.0.1"
859
+ description = "A development tool to measure, monitor and analyze the memory behavior of Python objects."
860
+ category = "main"
861
+ optional = false
862
+ python-versions = ">=3.6"
863
+
864
+ [[package]]
865
+ name = "pynacl"
866
+ version = "1.5.0"
867
+ description = "Python binding to the Networking and Cryptography (NaCl) library"
868
+ category = "main"
869
+ optional = false
870
+ python-versions = ">=3.6"
871
+
872
+ [package.dependencies]
873
+ cffi = ">=1.4.1"
874
+
875
+ [package.extras]
876
+ docs = ["sphinx (>=1.6.5)", "sphinx-rtd-theme"]
877
+ tests = ["pytest (>=3.2.1,!=3.3.0)", "hypothesis (>=3.27.0)"]
878
+
879
+ [[package]]
880
+ name = "pyparsing"
881
+ version = "3.0.9"
882
+ description = "pyparsing module - Classes and methods to define and execute parsing grammars"
883
+ category = "main"
884
+ optional = false
885
+ python-versions = ">=3.6.8"
886
+
887
+ [package.extras]
888
+ diagrams = ["railroad-diagrams", "jinja2"]
889
+
890
+ [[package]]
891
+ name = "pyrsistent"
892
+ version = "0.19.2"
893
+ description = "Persistent/Functional/Immutable data structures"
894
+ category = "main"
895
+ optional = false
896
+ python-versions = ">=3.7"
897
+
898
+ [[package]]
899
+ name = "python-dateutil"
900
+ version = "2.8.2"
901
+ description = "Extensions to the standard Python datetime module"
902
+ category = "main"
903
+ optional = false
904
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
905
+
906
+ [package.dependencies]
907
+ six = ">=1.5"
908
+
909
+ [[package]]
910
+ name = "python-multipart"
911
+ version = "0.0.5"
912
+ description = "A streaming multipart parser for Python"
913
+ category = "main"
914
+ optional = false
915
+ python-versions = "*"
916
+
917
+ [package.dependencies]
918
+ six = ">=1.4.0"
919
+
920
+ [[package]]
921
+ name = "pytz"
922
+ version = "2022.6"
923
+ description = "World timezone definitions, modern and historical"
924
+ category = "main"
925
+ optional = false
926
+ python-versions = "*"
927
+
928
+ [[package]]
929
+ name = "pytz-deprecation-shim"
930
+ version = "0.1.0.post0"
931
+ description = "Shims to make deprecation of pytz easier"
932
+ category = "main"
933
+ optional = false
934
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
935
+
936
+ [package.dependencies]
937
+ tzdata = {version = "*", markers = "python_version >= \"3.6\""}
938
+
939
+ [[package]]
940
+ name = "pyyaml"
941
+ version = "6.0"
942
+ description = "YAML parser and emitter for Python"
943
+ category = "main"
944
+ optional = false
945
+ python-versions = ">=3.6"
946
+
947
+ [[package]]
948
+ name = "requests"
949
+ version = "2.28.1"
950
+ description = "Python HTTP for Humans."
951
+ category = "main"
952
+ optional = false
953
+ python-versions = ">=3.7, <4"
954
+
955
+ [package.dependencies]
956
+ certifi = ">=2017.4.17"
957
+ charset-normalizer = ">=2,<3"
958
+ idna = ">=2.5,<4"
959
+ urllib3 = ">=1.21.1,<1.27"
960
+
961
+ [package.extras]
962
+ socks = ["PySocks (>=1.5.6,!=1.5.7)"]
963
+ use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"]
964
+
965
+ [[package]]
966
+ name = "rfc3986"
967
+ version = "1.5.0"
968
+ description = "Validating URI References per RFC 3986"
969
+ category = "main"
970
+ optional = false
971
+ python-versions = "*"
972
+
973
+ [package.dependencies]
974
+ idna = {version = "*", optional = true, markers = "extra == \"idna2008\""}
975
+
976
+ [package.extras]
977
+ idna2008 = ["idna"]
978
+
979
+ [[package]]
980
+ name = "rich"
981
+ version = "12.6.0"
982
+ description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal"
983
+ category = "main"
984
+ optional = false
985
+ python-versions = ">=3.6.3,<4.0.0"
986
+
987
+ [package.dependencies]
988
+ commonmark = ">=0.9.0,<0.10.0"
989
+ pygments = ">=2.6.0,<3.0.0"
990
+
991
+ [package.extras]
992
+ jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"]
993
+
994
+ [[package]]
995
+ name = "semver"
996
+ version = "2.13.0"
997
+ description = "Python helper for Semantic Versioning (http://semver.org/)"
998
+ category = "main"
999
+ optional = false
1000
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
1001
+
1002
+ [[package]]
1003
+ name = "setuptools-scm"
1004
+ version = "7.0.5"
1005
+ description = "the blessed package to manage your versions by scm tags"
1006
+ category = "main"
1007
+ optional = false
1008
+ python-versions = ">=3.7"
1009
+
1010
+ [package.dependencies]
1011
+ packaging = ">=20.0"
1012
+ tomli = ">=1.0.0"
1013
+ typing-extensions = "*"
1014
+
1015
+ [package.extras]
1016
+ test = ["pytest (>=6.2)", "virtualenv (>20)"]
1017
+ toml = ["setuptools (>=42)"]
1018
+
1019
+ [[package]]
1020
+ name = "six"
1021
+ version = "1.16.0"
1022
+ description = "Python 2 and 3 compatibility utilities"
1023
+ category = "main"
1024
+ optional = false
1025
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
1026
+
1027
+ [[package]]
1028
+ name = "smart-open"
1029
+ version = "5.2.1"
1030
+ description = "Utils for streaming large files (S3, HDFS, GCS, Azure Blob Storage, gzip, bz2...)"
1031
+ category = "main"
1032
+ optional = false
1033
+ python-versions = ">=3.6,<4.0"
1034
+
1035
+ [package.extras]
1036
+ all = ["boto3", "google-cloud-storage", "azure-storage-blob", "azure-common", "azure-core", "requests"]
1037
+ azure = ["azure-storage-blob", "azure-common", "azure-core"]
1038
+ gcs = ["google-cloud-storage"]
1039
+ http = ["requests"]
1040
+ s3 = ["boto3"]
1041
+ test = ["boto3", "google-cloud-storage", "azure-storage-blob", "azure-common", "azure-core", "requests", "moto[server] (==1.3.14)", "pathlib2", "responses", "paramiko", "parameterizedtestcase", "pytest", "pytest-rerunfailures"]
1042
+ webhdfs = ["requests"]
1043
+
1044
+ [[package]]
1045
+ name = "smmap"
1046
+ version = "5.0.0"
1047
+ description = "A pure Python implementation of a sliding window memory map manager"
1048
+ category = "main"
1049
+ optional = false
1050
+ python-versions = ">=3.6"
1051
+
1052
+ [[package]]
1053
+ name = "sniffio"
1054
+ version = "1.3.0"
1055
+ description = "Sniff out which async library your code is running under"
1056
+ category = "main"
1057
+ optional = false
1058
+ python-versions = ">=3.7"
1059
+
1060
+ [[package]]
1061
+ name = "spacy"
1062
+ version = "3.4.3"
1063
+ description = "Industrial-strength Natural Language Processing (NLP) in Python"
1064
+ category = "main"
1065
+ optional = false
1066
+ python-versions = ">=3.6"
1067
+
1068
+ [package.dependencies]
1069
+ catalogue = ">=2.0.6,<2.1.0"
1070
+ cymem = ">=2.0.2,<2.1.0"
1071
+ jinja2 = "*"
1072
+ langcodes = ">=3.2.0,<4.0.0"
1073
+ murmurhash = ">=0.28.0,<1.1.0"
1074
+ numpy = ">=1.15.0"
1075
+ packaging = ">=20.0"
1076
+ pathy = ">=0.3.5"
1077
+ preshed = ">=3.0.2,<3.1.0"
1078
+ pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<1.11.0"
1079
+ requests = ">=2.13.0,<3.0.0"
1080
+ spacy-legacy = ">=3.0.10,<3.1.0"
1081
+ spacy-loggers = ">=1.0.0,<2.0.0"
1082
+ srsly = ">=2.4.3,<3.0.0"
1083
+ thinc = ">=8.1.0,<8.2.0"
1084
+ tqdm = ">=4.38.0,<5.0.0"
1085
+ typer = ">=0.3.0,<0.8.0"
1086
+ wasabi = ">=0.9.1,<1.1.0"
1087
+
1088
+ [package.extras]
1089
+ apple = ["thinc-apple-ops (>=0.1.0.dev0,<1.0.0)"]
1090
+ cuda = ["cupy (>=5.0.0b4,<12.0.0)"]
1091
+ cuda-autodetect = ["cupy-wheel (>=11.0.0,<12.0.0)"]
1092
+ cuda100 = ["cupy-cuda100 (>=5.0.0b4,<12.0.0)"]
1093
+ cuda101 = ["cupy-cuda101 (>=5.0.0b4,<12.0.0)"]
1094
+ cuda102 = ["cupy-cuda102 (>=5.0.0b4,<12.0.0)"]
1095
+ cuda110 = ["cupy-cuda110 (>=5.0.0b4,<12.0.0)"]
1096
+ cuda111 = ["cupy-cuda111 (>=5.0.0b4,<12.0.0)"]
1097
+ cuda112 = ["cupy-cuda112 (>=5.0.0b4,<12.0.0)"]
1098
+ cuda113 = ["cupy-cuda113 (>=5.0.0b4,<12.0.0)"]
1099
+ cuda114 = ["cupy-cuda114 (>=5.0.0b4,<12.0.0)"]
1100
+ cuda115 = ["cupy-cuda115 (>=5.0.0b4,<12.0.0)"]
1101
+ cuda116 = ["cupy-cuda116 (>=5.0.0b4,<12.0.0)"]
1102
+ cuda117 = ["cupy-cuda117 (>=5.0.0b4,<12.0.0)"]
1103
+ cuda11x = ["cupy-cuda11x (>=11.0.0,<12.0.0)"]
1104
+ cuda80 = ["cupy-cuda80 (>=5.0.0b4,<12.0.0)"]
1105
+ cuda90 = ["cupy-cuda90 (>=5.0.0b4,<12.0.0)"]
1106
+ cuda91 = ["cupy-cuda91 (>=5.0.0b4,<12.0.0)"]
1107
+ cuda92 = ["cupy-cuda92 (>=5.0.0b4,<12.0.0)"]
1108
+ ja = ["sudachipy (>=0.5.2,!=0.6.1)", "sudachidict-core (>=20211220)"]
1109
+ ko = ["natto-py (>=0.9.0)"]
1110
+ lookups = ["spacy-lookups-data (>=1.0.3,<1.1.0)"]
1111
+ ray = ["spacy-ray (>=0.1.0,<1.0.0)"]
1112
+ th = ["pythainlp (>=2.0)"]
1113
+ transformers = ["spacy-transformers (>=1.1.2,<1.2.0)"]
1114
+
1115
+ [[package]]
1116
+ name = "spacy-legacy"
1117
+ version = "3.0.10"
1118
+ description = "Legacy registered functions for spaCy backwards compatibility"
1119
+ category = "main"
1120
+ optional = false
1121
+ python-versions = ">=3.6"
1122
+
1123
+ [[package]]
1124
+ name = "spacy-loggers"
1125
+ version = "1.0.3"
1126
+ description = "Logging utilities for SpaCy"
1127
+ category = "main"
1128
+ optional = false
1129
+ python-versions = ">=3.6"
1130
+
1131
+ [package.dependencies]
1132
+ wasabi = ">=0.8.1,<1.1.0"
1133
+
1134
+ [[package]]
1135
+ name = "srsly"
1136
+ version = "2.4.5"
1137
+ description = "Modern high-performance serialization utilities for Python"
1138
+ category = "main"
1139
+ optional = false
1140
+ python-versions = ">=3.6"
1141
+
1142
+ [package.dependencies]
1143
+ catalogue = ">=2.0.3,<2.1.0"
1144
+
1145
+ [[package]]
1146
+ name = "starlette"
1147
+ version = "0.22.0"
1148
+ description = "The little ASGI library that shines."
1149
+ category = "main"
1150
+ optional = false
1151
+ python-versions = ">=3.7"
1152
+
1153
+ [package.dependencies]
1154
+ anyio = ">=3.4.0,<5"
1155
+
1156
+ [package.extras]
1157
+ full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"]
1158
+
1159
+ [[package]]
1160
+ name = "streamlit"
1161
+ version = "1.15.2"
1162
+ description = "The fastest way to build data apps in Python"
1163
+ category = "main"
1164
+ optional = false
1165
+ python-versions = ">=3.7, !=3.9.7"
1166
+
1167
+ [package.dependencies]
1168
+ altair = ">=3.2.0"
1169
+ blinker = ">=1.0.0"
1170
+ cachetools = ">=4.0"
1171
+ click = ">=7.0"
1172
+ gitpython = "!=3.1.19"
1173
+ importlib-metadata = ">=1.4"
1174
+ numpy = "*"
1175
+ packaging = ">=14.1"
1176
+ pandas = ">=0.21.0"
1177
+ pillow = ">=6.2.0"
1178
+ protobuf = ">=3.12,<4"
1179
+ pyarrow = ">=4.0"
1180
+ pydeck = ">=0.1.dev5"
1181
+ pympler = ">=0.9"
1182
+ python-dateutil = "*"
1183
+ requests = ">=2.4"
1184
+ rich = ">=10.11.0"
1185
+ semver = "*"
1186
+ toml = "*"
1187
+ tornado = ">=5.0"
1188
+ typing-extensions = ">=3.10.0.0"
1189
+ tzlocal = ">=1.1"
1190
+ validators = ">=0.2"
1191
+ watchdog = {version = "*", markers = "platform_system != \"Darwin\""}
1192
+
1193
+ [[package]]
1194
+ name = "thinc"
1195
+ version = "8.1.5"
1196
+ description = "A refreshing functional take on deep learning, compatible with your favorite libraries"
1197
+ category = "main"
1198
+ optional = false
1199
+ python-versions = ">=3.6"
1200
+
1201
+ [package.dependencies]
1202
+ blis = ">=0.7.8,<0.8.0"
1203
+ catalogue = ">=2.0.4,<2.1.0"
1204
+ confection = ">=0.0.1,<1.0.0"
1205
+ cymem = ">=2.0.2,<2.1.0"
1206
+ murmurhash = ">=1.0.2,<1.1.0"
1207
+ numpy = ">=1.15.0"
1208
+ preshed = ">=3.0.2,<3.1.0"
1209
+ pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<1.11.0"
1210
+ srsly = ">=2.4.0,<3.0.0"
1211
+ wasabi = ">=0.8.1,<1.1.0"
1212
+
1213
+ [package.extras]
1214
+ cuda = ["cupy (>=5.0.0b4)"]
1215
+ cuda-autodetect = ["cupy-wheel (>=11.0.0)"]
1216
+ cuda100 = ["cupy-cuda100 (>=5.0.0b4)"]
1217
+ cuda101 = ["cupy-cuda101 (>=5.0.0b4)"]
1218
+ cuda102 = ["cupy-cuda102 (>=5.0.0b4)"]
1219
+ cuda110 = ["cupy-cuda110 (>=5.0.0b4)"]
1220
+ cuda111 = ["cupy-cuda111 (>=5.0.0b4)"]
1221
+ cuda112 = ["cupy-cuda112 (>=5.0.0b4)"]
1222
+ cuda113 = ["cupy-cuda113 (>=5.0.0b4)"]
1223
+ cuda114 = ["cupy-cuda114 (>=5.0.0b4)"]
1224
+ cuda115 = ["cupy-cuda115 (>=5.0.0b4)"]
1225
+ cuda116 = ["cupy-cuda116 (>=5.0.0b4)"]
1226
+ cuda117 = ["cupy-cuda117 (>=5.0.0b4)"]
1227
+ cuda11x = ["cupy-cuda11x (>=11.0.0)"]
1228
+ cuda80 = ["cupy-cuda80 (>=5.0.0b4)"]
1229
+ cuda90 = ["cupy-cuda90 (>=5.0.0b4)"]
1230
+ cuda91 = ["cupy-cuda91 (>=5.0.0b4)"]
1231
+ cuda92 = ["cupy-cuda92 (>=5.0.0b4)"]
1232
+ datasets = ["ml-datasets (>=0.2.0,<0.3.0)"]
1233
+ mxnet = ["mxnet (>=1.5.1,<1.6.0)"]
1234
+ tensorflow = ["tensorflow (>=2.0.0,<2.6.0)"]
1235
+ torch = ["torch (>=1.6.0)"]
1236
+
1237
+ [[package]]
1238
+ name = "toml"
1239
+ version = "0.10.2"
1240
+ description = "Python Library for Tom's Obvious, Minimal Language"
1241
+ category = "main"
1242
+ optional = false
1243
+ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
1244
+
1245
+ [[package]]
1246
+ name = "tomli"
1247
+ version = "2.0.1"
1248
+ description = "A lil' TOML parser"
1249
+ category = "main"
1250
+ optional = false
1251
+ python-versions = ">=3.7"
1252
+
1253
+ [[package]]
1254
+ name = "toolz"
1255
+ version = "0.12.0"
1256
+ description = "List processing tools and functional utilities"
1257
+ category = "main"
1258
+ optional = false
1259
+ python-versions = ">=3.5"
1260
+
1261
+ [[package]]
1262
+ name = "tornado"
1263
+ version = "6.2"
1264
+ description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
1265
+ category = "main"
1266
+ optional = false
1267
+ python-versions = ">= 3.7"
1268
+
1269
+ [[package]]
1270
+ name = "tqdm"
1271
+ version = "4.64.1"
1272
+ description = "Fast, Extensible Progress Meter"
1273
+ category = "main"
1274
+ optional = false
1275
+ python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
1276
+
1277
+ [package.dependencies]
1278
+ colorama = {version = "*", markers = "platform_system == \"Windows\""}
1279
+
1280
+ [package.extras]
1281
+ dev = ["py-make (>=0.1.0)", "twine", "wheel"]
1282
+ notebook = ["ipywidgets (>=6)"]
1283
+ slack = ["slack-sdk"]
1284
+ telegram = ["requests"]
1285
+
1286
+ [[package]]
1287
+ name = "typer"
1288
+ version = "0.7.0"
1289
+ description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
1290
+ category = "main"
1291
+ optional = false
1292
+ python-versions = ">=3.6"
1293
+
1294
+ [package.dependencies]
1295
+ click = ">=7.1.1,<9.0.0"
1296
+
1297
+ [package.extras]
1298
+ all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)", "rich (>=10.11.0,<13.0.0)"]
1299
+ dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)", "pre-commit (>=2.17.0,<3.0.0)"]
1300
+ doc = ["mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=8.1.4,<9.0.0)", "mdx-include (>=1.4.1,<2.0.0)", "pillow (>=9.3.0,<10.0.0)", "cairosvg (>=2.5.2,<3.0.0)"]
1301
+ test = ["shellingham (>=1.3.0,<2.0.0)", "pytest (>=4.4.0,<8.0.0)", "pytest-cov (>=2.10.0,<5.0.0)", "coverage (>=6.2,<7.0)", "pytest-xdist (>=1.32.0,<4.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "mypy (==0.910)", "black (>=22.3.0,<23.0.0)", "isort (>=5.0.6,<6.0.0)", "rich (>=10.11.0,<13.0.0)"]
1302
+
1303
+ [[package]]
1304
+ name = "typing-extensions"
1305
+ version = "4.4.0"
1306
+ description = "Backported and Experimental Type Hints for Python 3.7+"
1307
+ category = "main"
1308
+ optional = false
1309
+ python-versions = ">=3.7"
1310
+
1311
+ [[package]]
1312
+ name = "tzdata"
1313
+ version = "2022.7"
1314
+ description = "Provider of IANA time zone data"
1315
+ category = "main"
1316
+ optional = false
1317
+ python-versions = ">=2"
1318
+
1319
+ [[package]]
1320
+ name = "tzlocal"
1321
+ version = "4.2"
1322
+ description = "tzinfo object for the local timezone"
1323
+ category = "main"
1324
+ optional = false
1325
+ python-versions = ">=3.6"
1326
+
1327
+ [package.dependencies]
1328
+ pytz-deprecation-shim = "*"
1329
+ tzdata = {version = "*", markers = "platform_system == \"Windows\""}
1330
+
1331
+ [package.extras]
1332
+ devenv = ["black", "pyroma", "pytest-cov", "zest.releaser"]
1333
+ test = ["pytest-mock (>=3.3)", "pytest (>=4.3)"]
1334
+
1335
+ [[package]]
1336
+ name = "uc-micro-py"
1337
+ version = "1.0.1"
1338
+ description = "Micro subset of unicode data files for linkify-it-py projects."
1339
+ category = "main"
1340
+ optional = false
1341
+ python-versions = ">=3.6"
1342
+
1343
+ [package.extras]
1344
+ test = ["coverage", "pytest", "pytest-cov"]
1345
+
1346
+ [[package]]
1347
+ name = "urllib3"
1348
+ version = "1.26.13"
1349
+ description = "HTTP library with thread-safe connection pooling, file post, and more."
1350
+ category = "main"
1351
+ optional = false
1352
+ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
1353
+
1354
+ [package.extras]
1355
+ brotli = ["brotlicffi (>=0.8.0)", "brotli (>=1.0.9)", "brotlipy (>=0.6.0)"]
1356
+ secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "urllib3-secure-extra", "ipaddress"]
1357
+ socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
1358
+
1359
+ [[package]]
1360
+ name = "uvicorn"
1361
+ version = "0.20.0"
1362
+ description = "The lightning-fast ASGI server."
1363
+ category = "main"
1364
+ optional = false
1365
+ python-versions = ">=3.7"
1366
+
1367
+ [package.dependencies]
1368
+ click = ">=7.0"
1369
+ h11 = ">=0.8"
1370
+
1371
+ [package.extras]
1372
+ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"]
1373
+
1374
+ [[package]]
1375
+ name = "validators"
1376
+ version = "0.20.0"
1377
+ description = "Python Data Validation for Humans™."
1378
+ category = "main"
1379
+ optional = false
1380
+ python-versions = ">=3.4"
1381
+
1382
+ [package.dependencies]
1383
+ decorator = ">=3.4.0"
1384
+
1385
+ [package.extras]
1386
+ test = ["pytest (>=2.2.3)", "flake8 (>=2.4.0)", "isort (>=4.2.2)"]
1387
+
1388
+ [[package]]
1389
+ name = "wasabi"
1390
+ version = "0.10.1"
1391
+ description = "A lightweight console printing and formatting toolkit"
1392
+ category = "main"
1393
+ optional = false
1394
+ python-versions = "*"
1395
+
1396
+ [[package]]
1397
+ name = "watchdog"
1398
+ version = "2.2.0"
1399
+ description = "Filesystem events monitoring"
1400
+ category = "main"
1401
+ optional = false
1402
+ python-versions = ">=3.6"
1403
+
1404
+ [package.extras]
1405
+ watchmedo = ["PyYAML (>=3.10)"]
1406
+
1407
+ [[package]]
1408
+ name = "websockets"
1409
+ version = "10.4"
1410
+ description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
1411
+ category = "main"
1412
+ optional = false
1413
+ python-versions = ">=3.7"
1414
+
1415
+ [[package]]
1416
+ name = "yarl"
1417
+ version = "1.8.2"
1418
+ description = "Yet another URL library"
1419
+ category = "main"
1420
+ optional = false
1421
+ python-versions = ">=3.7"
1422
+
1423
+ [package.dependencies]
1424
+ idna = ">=2.0"
1425
+ multidict = ">=4.0"
1426
+
1427
+ [[package]]
1428
+ name = "zipp"
1429
+ version = "3.11.0"
1430
+ description = "Backport of pathlib-compatible object wrapper for zip files"
1431
+ category = "main"
1432
+ optional = false
1433
+ python-versions = ">=3.7"
1434
+
1435
+ [package.extras]
1436
+ docs = ["sphinx (>=3.5)", "jaraco.packaging (>=9)", "rst.linker (>=1.9)", "furo", "jaraco.tidelift (>=1.4)"]
1437
+ testing = ["pytest (>=6)", "pytest-checkdocs (>=2.4)", "flake8 (<5)", "pytest-cov", "pytest-enabler (>=1.3)", "jaraco.itertools", "func-timeout", "jaraco.functools", "more-itertools", "pytest-black (>=0.3.7)", "pytest-mypy (>=0.9.1)", "pytest-flake8"]
1438
+
1439
+ [metadata]
1440
+ lock-version = "1.1"
1441
+ python-versions = "^3.10"
1442
+ content-hash = "6dc5d180848f73b5057c905986af359f84ba51f0b9604be61631f4bd614d020e"
1443
+
1444
+ [metadata.files]
1445
+ aiohttp = []
1446
+ aiosignal = []
1447
+ altair = []
1448
+ anyio = []
1449
+ async-timeout = []
1450
+ attrs = []
1451
+ bcrypt = []
1452
+ blinker = []
1453
+ blis = []
1454
+ cachetools = []
1455
+ catalogue = []
1456
+ certifi = []
1457
+ cffi = []
1458
+ charset-normalizer = []
1459
+ click = [
1460
+ {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
1461
+ {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"},
1462
+ ]
1463
+ colorama = []
1464
+ commonmark = []
1465
+ confection = []
1466
+ contourpy = []
1467
+ cryptography = []
1468
+ cycler = []
1469
+ cymem = []
1470
+ decorator = [
1471
+ {file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
1472
+ {file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
1473
+ ]
1474
+ entrypoints = []
1475
+ fastapi = []
1476
+ ffmpy = []
1477
+ fonttools = []
1478
+ frozenlist = []
1479
+ fsspec = []
1480
+ gitdb = []
1481
+ gitpython = []
1482
+ gradio = []
1483
+ h11 = [
1484
+ {file = "h11-0.12.0-py3-none-any.whl", hash = "sha256:36a3cb8c0a032f56e2da7084577878a035d3b61d104230d4bd49c0c6b555a9c6"},
1485
+ {file = "h11-0.12.0.tar.gz", hash = "sha256:47222cb6067e4a307d535814917cd98fd0a57b6788ce715755fa2b6c28b56042"},
1486
+ ]
1487
+ httpcore = []
1488
+ httpx = []
1489
+ idna = []
1490
+ importlib-metadata = []
1491
+ jinja2 = []
1492
+ jsonschema = []
1493
+ kiwisolver = []
1494
+ langcodes = []
1495
+ linkify-it-py = []
1496
+ markdown-it-py = []
1497
+ markupsafe = []
1498
+ matplotlib = []
1499
+ mdit-py-plugins = []
1500
+ mdurl = []
1501
+ multidict = []
1502
+ murmurhash = []
1503
+ numpy = []
1504
+ orjson = []
1505
+ packaging = []
1506
+ pandas = []
1507
+ paramiko = []
1508
+ pathy = []
1509
+ pillow = []
1510
+ pony = []
1511
+ preshed = []
1512
+ protobuf = []
1513
+ psycopg2 = []
1514
+ pyarrow = []
1515
+ pycparser = []
1516
+ pycryptodome = []
1517
+ pydantic = []
1518
+ pydeck = []
1519
+ pydub = []
1520
+ pygments = []
1521
+ pympler = []
1522
+ pynacl = []
1523
+ pyparsing = []
1524
+ pyrsistent = []
1525
+ python-dateutil = []
1526
+ python-multipart = [
1527
+ {file = "python-multipart-0.0.5.tar.gz", hash = "sha256:f7bb5f611fc600d15fa47b3974c8aa16e93724513b49b5f95c81e6624c83fa43"},
1528
+ ]
1529
+ pytz = []
1530
+ pytz-deprecation-shim = []
1531
+ pyyaml = []
1532
+ requests = []
1533
+ rfc3986 = [
1534
+ {file = "rfc3986-1.5.0-py2.py3-none-any.whl", hash = "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"},
1535
+ {file = "rfc3986-1.5.0.tar.gz", hash = "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835"},
1536
+ ]
1537
+ rich = []
1538
+ semver = []
1539
+ setuptools-scm = []
1540
+ six = []
1541
+ smart-open = []
1542
+ smmap = []
1543
+ sniffio = []
1544
+ spacy = []
1545
+ spacy-legacy = []
1546
+ spacy-loggers = []
1547
+ srsly = []
1548
+ starlette = []
1549
+ streamlit = []
1550
+ thinc = []
1551
+ toml = []
1552
+ tomli = []
1553
+ toolz = []
1554
+ tornado = []
1555
+ tqdm = []
1556
+ typer = []
1557
+ typing-extensions = []
1558
+ tzdata = []
1559
+ tzlocal = []
1560
+ uc-micro-py = []
1561
+ urllib3 = []
1562
+ uvicorn = []
1563
+ validators = [
1564
+ {file = "validators-0.20.0.tar.gz", hash = "sha256:24148ce4e64100a2d5e267233e23e7afeb55316b47d30faae7eb6e7292bc226a"},
1565
+ ]
1566
+ wasabi = []
1567
+ watchdog = []
1568
+ websockets = []
1569
+ yarl = []
1570
+ zipp = []
pyproject.toml ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [tool.poetry]
2
+ name = "token-classification"
3
+ version = "0.1.0"
4
+ description = ""
5
+ authors = ["Empy Team"]
6
+
7
+ [tool.poetry.dependencies]
8
+ python = "^3.10"
9
+ gradio = "^3.12.0"
10
+ requests = "^2.28.1"
11
+ spacy = "^3.4.3"
12
+ streamlit = "^1.15.2"
13
+ pony = "^0.7.16"
14
+ psycopg2 = "^2.9.5"
15
+
16
+ [tool.poetry.dev-dependencies]
17
+
18
+ [build-system]
19
+ requires = ["poetry-core>=1.0.0"]
20
+ build-backend = "poetry.core.masonry.api"
requirements.txt DELETED
@@ -1,3 +0,0 @@
1
- gradio==3.11.0
2
- requests==2.28.1
3
- spacy==3.4.3