mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 20:29:06 +00:00
Merge pull request #130 from Monadical-SAS/feat/evaluate
Model evaluation feature
This commit is contained in:
0
server/evaluate/__init__.py
Normal file
0
server/evaluate/__init__.py
Normal file
204
server/evaluate/evaluate_transcription.py
Normal file
204
server/evaluate/evaluate_transcription.py
Normal file
@@ -0,0 +1,204 @@
|
||||
import re
|
||||
from pathlib import Path
|
||||
from typing import Any, List
|
||||
|
||||
from jiwer import wer
|
||||
from Levenshtein import distance
|
||||
from pydantic import BaseModel, Field, field_validator
|
||||
from tqdm.auto import tqdm
|
||||
from whisper.normalizers import EnglishTextNormalizer
|
||||
|
||||
|
||||
class EvaluationResult(BaseModel):
|
||||
"""
|
||||
Result object of the model evaluation
|
||||
"""
|
||||
accuracy: float = Field(default=0.0)
|
||||
total_test_samples: int = Field(default=0)
|
||||
|
||||
|
||||
class EvaluationTestSample(BaseModel):
|
||||
"""
|
||||
Represents one test sample
|
||||
"""
|
||||
|
||||
reference_text: str
|
||||
predicted_text: str
|
||||
|
||||
def update(self, reference_text:str, predicted_text:str) -> None:
|
||||
self.reference_text = reference_text
|
||||
self.predicted_text = predicted_text
|
||||
|
||||
|
||||
class TestDatasetLoader(BaseModel):
|
||||
"""
|
||||
Test samples loader
|
||||
"""
|
||||
|
||||
test_dir: Path = Field(default=Path(__file__).parent)
|
||||
total_samples: int = Field(default=0)
|
||||
|
||||
@field_validator("test_dir")
|
||||
def validate_file_path(cls, path):
|
||||
"""
|
||||
Check the file path
|
||||
"""
|
||||
if not path.exists():
|
||||
raise ValueError("Path does not exist")
|
||||
return path
|
||||
|
||||
def _load_test_data(self) -> tuple[Path, Path]:
|
||||
"""
|
||||
Loader function to validate input files and generate samples
|
||||
"""
|
||||
PREDICTED_TEST_SAMPLES_DIR = self.test_dir / "predicted_texts"
|
||||
REFERENCE_TEST_SAMPLES_DIR = self.test_dir / "reference_texts"
|
||||
|
||||
for filename in PREDICTED_TEST_SAMPLES_DIR.iterdir():
|
||||
match = re.search(r"(\d+)\.txt$", filename.as_posix())
|
||||
if match:
|
||||
sample_id = match.group(1)
|
||||
pred_file_path = PREDICTED_TEST_SAMPLES_DIR / filename
|
||||
ref_file_name = "ref_sample_" + str(sample_id) + ".txt"
|
||||
ref_file_path = REFERENCE_TEST_SAMPLES_DIR / ref_file_name
|
||||
if ref_file_path.exists():
|
||||
self.total_samples += 1
|
||||
yield ref_file_path, pred_file_path
|
||||
|
||||
def __iter__(self) -> EvaluationTestSample:
|
||||
"""
|
||||
Iter method for the test loader
|
||||
"""
|
||||
for pred_file_path, ref_file_path in self._load_test_data():
|
||||
with open(pred_file_path, "r", encoding="utf-8") as file:
|
||||
pred_text = file.read()
|
||||
with open(ref_file_path, "r", encoding="utf-8") as file:
|
||||
ref_text = file.read()
|
||||
yield EvaluationTestSample(reference_text=ref_text, predicted_text=pred_text)
|
||||
|
||||
|
||||
class EvaluationConfig(BaseModel):
|
||||
"""
|
||||
Model for evaluation parameters
|
||||
"""
|
||||
insertion_penalty: int = Field(default=1)
|
||||
substitution_penalty: int = Field(default=1)
|
||||
deletion_penalty: int = Field(default=1)
|
||||
normalizer: Any = Field(default=EnglishTextNormalizer())
|
||||
test_directory: str = Field(default=str(Path(__file__).parent))
|
||||
|
||||
|
||||
class ModelEvaluator:
|
||||
"""
|
||||
Class that comprises all model evaluation related processes and methods
|
||||
"""
|
||||
|
||||
# The 2 popular methods of WER differ slightly. More dimensions of accuracy
|
||||
# will be added. For now, the average of these 2 will serve as the metric.
|
||||
WEIGHTED_WER_LEVENSHTEIN = 0.0
|
||||
WER_LEVENSHTEIN = []
|
||||
WEIGHTED_WER_JIWER = 0.0
|
||||
WER_JIWER = []
|
||||
|
||||
evaluation_result = EvaluationResult()
|
||||
test_dataset_loader = None
|
||||
evaluation_config = None
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
self.evaluation_config = EvaluationConfig(**kwargs)
|
||||
self.test_dataset_loader = TestDatasetLoader(test_dir=self.evaluation_config.test_directory)
|
||||
|
||||
def __repr__(self):
|
||||
return f"ModelEvaluator({self.evaluation_config})"
|
||||
|
||||
def describe(self) -> dict:
|
||||
"""
|
||||
Returns the parameters defining the evaluator
|
||||
"""
|
||||
return self.evaluation_config.model_dump()
|
||||
|
||||
def _normalize(self, sample: EvaluationTestSample) -> None:
|
||||
"""
|
||||
Normalize both reference and predicted text
|
||||
"""
|
||||
sample.update(
|
||||
self.evaluation_config.normalizer(sample.reference_text),
|
||||
self.evaluation_config.normalizer(sample.predicted_text),
|
||||
)
|
||||
|
||||
def _calculate_wer(self, sample: EvaluationTestSample) -> float:
|
||||
"""
|
||||
Based on weights for (insert, delete, substitute), calculate
|
||||
the Word Error Rate
|
||||
"""
|
||||
levenshtein_distance = distance(
|
||||
s1=sample.reference_text,
|
||||
s2=sample.predicted_text,
|
||||
weights=(
|
||||
self.evaluation_config.insertion_penalty,
|
||||
self.evaluation_config.deletion_penalty,
|
||||
self.evaluation_config.substitution_penalty,
|
||||
),
|
||||
)
|
||||
wer = levenshtein_distance / len(sample.reference_text)
|
||||
return wer
|
||||
|
||||
def _calculate_wers(self) -> None:
|
||||
"""
|
||||
Compute WER
|
||||
"""
|
||||
for sample in tqdm(self.test_dataset_loader, desc="Evaluating"):
|
||||
self._normalize(sample)
|
||||
wer_item_l = {
|
||||
"wer": self._calculate_wer(sample),
|
||||
"no_of_words": len(sample.reference_text),
|
||||
}
|
||||
wer_item_j = {
|
||||
"wer": wer(sample.reference_text, sample.predicted_text),
|
||||
"no_of_words": len(sample.reference_text),
|
||||
}
|
||||
self.WER_LEVENSHTEIN.append(wer_item_l)
|
||||
self.WER_JIWER.append(wer_item_j)
|
||||
|
||||
def _calculate_weighted_wer(self, wers: List[float]) -> float:
|
||||
"""
|
||||
Calculate the weighted WER from WER
|
||||
"""
|
||||
total_wer = 0.0
|
||||
total_words = 0.0
|
||||
for item in wers:
|
||||
total_wer += item["no_of_words"] * item["wer"]
|
||||
total_words += item["no_of_words"]
|
||||
return total_wer / total_words
|
||||
|
||||
def _calculate_model_accuracy(self) -> None:
|
||||
"""
|
||||
Compute model accuracy
|
||||
"""
|
||||
self._calculate_wers()
|
||||
weighted_wer_levenshtein = self._calculate_weighted_wer(self.WER_LEVENSHTEIN)
|
||||
weighted_wer_jiwer = self._calculate_weighted_wer(self.WER_JIWER)
|
||||
|
||||
final_weighted_wer = (weighted_wer_levenshtein + weighted_wer_jiwer) / 2
|
||||
self.evaluation_result.accuracy = (1 - final_weighted_wer) * 100
|
||||
|
||||
def evaluate(self, recalculate: bool = False) -> EvaluationResult:
|
||||
"""
|
||||
Triggers the model evaluation
|
||||
"""
|
||||
if not self.evaluation_result.accuracy or recalculate:
|
||||
self._calculate_model_accuracy()
|
||||
return EvaluationResult(
|
||||
accuracy=self.evaluation_result.accuracy,
|
||||
total_test_samples=self.test_dataset_loader.total_samples
|
||||
)
|
||||
|
||||
|
||||
eval_config = {"insertion_penalty": 1, "deletion_penalty": 2, "substitution_penalty": 1}
|
||||
|
||||
evaluator = ModelEvaluator(**eval_config)
|
||||
evaluation = evaluator.evaluate()
|
||||
|
||||
print(evaluator)
|
||||
print(evaluation)
|
||||
print("Model accuracy : {:.2f} %".format(evaluation.accuracy))
|
||||
1
server/evaluate/predicted_texts/pred_sample_1.txt
Normal file
1
server/evaluate/predicted_texts/pred_sample_1.txt
Normal file
File diff suppressed because one or more lines are too long
1
server/evaluate/predicted_texts/pred_sample_2.txt
Normal file
1
server/evaluate/predicted_texts/pred_sample_2.txt
Normal file
File diff suppressed because one or more lines are too long
1
server/evaluate/predicted_texts/pred_sample_3.txt
Normal file
1
server/evaluate/predicted_texts/pred_sample_3.txt
Normal file
File diff suppressed because one or more lines are too long
1544
server/evaluate/reference_texts/ref_sample_1.txt
Normal file
1544
server/evaluate/reference_texts/ref_sample_1.txt
Normal file
File diff suppressed because it is too large
Load Diff
620
server/evaluate/reference_texts/ref_sample_2.txt
Normal file
620
server/evaluate/reference_texts/ref_sample_2.txt
Normal file
@@ -0,0 +1,620 @@
|
||||
Technologies ticker symbol w-e-l-l on
|
||||
|
||||
the TSX recently reported its 2023 q1
|
||||
|
||||
results beating the streets consensus
|
||||
|
||||
estimate for revenue and adjusted ebitda
|
||||
|
||||
and in a report issued this week Raymond
|
||||
|
||||
James analyst said quote we're impressed
|
||||
|
||||
by Wells capacity to drive powerful
|
||||
|
||||
growth across its diverse business units
|
||||
|
||||
in the absence of M A joining me today
|
||||
|
||||
is CEO Hamed chabazi to look at what's
|
||||
|
||||
next for well health good to see you sir
|
||||
|
||||
how are you great to see you Richard
|
||||
|
||||
thanks very much for having me great to
|
||||
|
||||
have you uh congratulations on your 17th
|
||||
|
||||
consecutive quarter of record Revenue
|
||||
|
||||
can you share some insights into what's
|
||||
|
||||
Driven these results historically and in
|
||||
|
||||
the past quarter as well
|
||||
|
||||
yeah thank you we we're very excited
|
||||
|
||||
about our uh q1 2023 results and as you
|
||||
|
||||
mentioned uh we've had a long you know
|
||||
|
||||
successful uh string of of uh you know
|
||||
|
||||
continued growth and record growth
|
||||
|
||||
um we also had accelerating organic
|
||||
|
||||
growth and I think um a big part of the
|
||||
|
||||
success of our franchise here is the
|
||||
|
||||
incredibly sticky and predictable
|
||||
|
||||
Revenue that we have you know well over
|
||||
|
||||
90 of our business is either highly
|
||||
|
||||
reoccurring as in uh the you know highly
|
||||
|
||||
predictable uh results of our two-sided
|
||||
|
||||
network of patients and providers or
|
||||
|
||||
truly recurring as in scheduled or
|
||||
|
||||
subscribed revenues and this allows us
|
||||
|
||||
to essentially make sure that that uh
|
||||
|
||||
you know we're on track it obviously you
|
||||
|
||||
know like any other business things
|
||||
|
||||
happen uh and sometimes it's hard to
|
||||
|
||||
meet those results but what's really
|
||||
|
||||
being unique about our platform is we do
|
||||
|
||||
have exposure to all kinds of different
|
||||
|
||||
aspects of healthcare you know we have
|
||||
|
||||
Prime primary care and Specialized Care
|
||||
|
||||
on both sides of the Border in the US
|
||||
|
||||
and Canada so we have exposure to
|
||||
|
||||
different types of business models we
|
||||
|
||||
have exposure to the U.S payer Network
|
||||
|
||||
which has higher per unit economics than
|
||||
|
||||
Canada and of course the stability and
|
||||
|
||||
uh and and sort of higher Fidelity uh
|
||||
|
||||
kind of Collections and revenue cycle
|
||||
|
||||
process that Canada has over the United
|
||||
|
||||
States where you don't have to kind of
|
||||
|
||||
deal with all of that uh at that payment
|
||||
|
||||
noise so just a lot of I think strength
|
||||
|
||||
built into the platform because of the
|
||||
|
||||
diversity of different Healthcare
|
||||
|
||||
businesses that we support
|
||||
|
||||
and uh where do you see Well's future
|
||||
|
||||
growth coming from which part of the
|
||||
|
||||
business uh excites you the most right
|
||||
|
||||
now yeah well look the centrifugal force
|
||||
|
||||
of well is the healthcare provider and
|
||||
|
||||
we exist to uh Tech enable and
|
||||
|
||||
ameliorate the business of that of that
|
||||
|
||||
Tech of that healthcare provider uh and
|
||||
|
||||
and and that's what we're laser focused
|
||||
|
||||
on and and what we're seeing is
|
||||
|
||||
providers not wanting to run businesses
|
||||
|
||||
anymore it's very simple and so we have
|
||||
|
||||
a digital platform and providers can
|
||||
|
||||
either acquire what they want and need
|
||||
|
||||
from our digital platform and implement
|
||||
|
||||
it themselves
|
||||
|
||||
or they can decide that they don't want
|
||||
|
||||
to run a business anymore they don't
|
||||
|
||||
want to configure and manage technology
|
||||
|
||||
which is becoming a bigger and bigger
|
||||
|
||||
part of their world every single day and
|
||||
|
||||
when we see what we've seen with that
|
||||
|
||||
Dynamic is that uh is that a lot of them
|
||||
|
||||
are now just wanting to work in a place
|
||||
|
||||
where where all the technology is
|
||||
|
||||
configured for them it's wrapped around
|
||||
|
||||
them and they have a competent operating
|
||||
|
||||
partner that is supporting the organ the
|
||||
|
||||
the practice uh and and taking care of
|
||||
|
||||
the front office in the back office so
|
||||
|
||||
that they can focus on providing care
|
||||
|
||||
this results in them seeing more
|
||||
|
||||
patients uh and and being happier
|
||||
|
||||
because you know they became doctors to
|
||||
|
||||
see patients not so they can manage uh
|
||||
|
||||
workers and and deal with HR issues and
|
||||
|
||||
deal with labs and all that kind of
|
||||
|
||||
stuff excellent and I know too that
|
||||
|
||||
Acquisitions have played a key role in
|
||||
|
||||
well can you share any insights into how
|
||||
|
||||
the Acquisitions fit into Wells growth
|
||||
|
||||
strategy
|
||||
|
||||
sure in in look in 2020 and 2021 we did
|
||||
|
||||
a lot of Acquisitions in 2022 we took a
|
||||
|
||||
bit of a breather and we've really
|
||||
|
||||
focused on integration and I think
|
||||
|
||||
that's one of the reasons why you saw
|
||||
|
||||
this accelerating organic growth we
|
||||
|
||||
really were able to demonstrate that we
|
||||
|
||||
could bring together the different
|
||||
|
||||
elements of our technology platform we
|
||||
|
||||
started to sell bundles we started to
|
||||
|
||||
really derive Synergy uh and activate uh
|
||||
|
||||
you know more sales as a result of
|
||||
|
||||
selling uh all the different products
|
||||
|
||||
and services with one voice with One
|
||||
|
||||
Vision uh so we made it easier for
|
||||
|
||||
providers to use their technology and I
|
||||
|
||||
think that was a big reason uh for our
|
||||
|
||||
growth now M A as you know where Capital
|
||||
|
||||
allocation company we're never far from
|
||||
|
||||
it and so we did continue to have you
|
||||
|
||||
know tuck-ins here and there and in fact
|
||||
|
||||
today uh we announced that we've
|
||||
|
||||
acquired uh the Alberta operations of uh
|
||||
|
||||
MCI one Health and other publicly traded
|
||||
|
||||
company uh who was looking to raise
|
||||
|
||||
funds to support their business we're
|
||||
|
||||
very pleased with with this acquisition
|
||||
|
||||
it just demonstrates our continued
|
||||
|
||||
discipline these are you know great
|
||||
|
||||
primary care clinics in in Canada right
|
||||
|
||||
in the greater Calgary area and uh uh
|
||||
|
||||
you know just allows us to grow our
|
||||
|
||||
footprint in Alberta which is an
|
||||
|
||||
important Province for us and it it's
|
||||
|
||||
it's if you look at the price if you
|
||||
|
||||
look at what we're getting uh you know
|
||||
|
||||
it's just demonstrative of our continued
|
||||
|
||||
uh discipline and just you know a few
|
||||
|
||||
days ago at our conference call I
|
||||
|
||||
mentioned uh that we had you know a
|
||||
|
||||
really strong lineup of Acquisitions uh
|
||||
|
||||
and you know they're starting to uh uh I
|
||||
|
||||
think uh come to fruition for us
|
||||
|
||||
a company on the grown-up question I you
|
||||
|
||||
recently announced a new AI investment
|
||||
|
||||
program last month what specific areas
|
||||
|
||||
of healthcare technology or AI are you
|
||||
|
||||
focusing on and what's the strategy when
|
||||
|
||||
it comes to AI
|
||||
|
||||
yes uh look AI as as I'm sure you're
|
||||
|
||||
aware is it's become you know really uh
|
||||
|
||||
an incredibly important topic in in all
|
||||
|
||||
aspects of of business and and you know
|
||||
|
||||
not just business socially as well
|
||||
|
||||
everyone's talking about uh this this
|
||||
|
||||
new breakthrough disruptive technology
|
||||
|
||||
the large language models and generative
|
||||
|
||||
AI
|
||||
|
||||
um I mean look AI uh has been about a 80
|
||||
|
||||
year old overnight success a lot of
|
||||
|
||||
people have been working on this for a
|
||||
|
||||
long time generative AI is just sort of
|
||||
|
||||
you know the culmination of a lot of
|
||||
|
||||
things coming together and working uh
|
||||
|
||||
but it is uncorked enormous uh
|
||||
|
||||
Innovation and and we think that um this
|
||||
|
||||
there's a very good news story about
|
||||
|
||||
this in healthcare particularly where we
|
||||
|
||||
were looking to look we were looking to
|
||||
|
||||
unlock uh the value of of the data that
|
||||
|
||||
that we all produce every single day
|
||||
|
||||
um as as humans and and so we've
|
||||
|
||||
established an AI investment program
|
||||
|
||||
because no one company can can tackle
|
||||
|
||||
all of these Innovations themselves and
|
||||
|
||||
what well has done too is it's taken a
|
||||
|
||||
very much an ecosystem approach by
|
||||
|
||||
establishing its apps.health Marketplace
|
||||
|
||||
and so we're very excited about not only
|
||||
|
||||
uh allocating Capital into promising
|
||||
|
||||
young AI companies that are focused on
|
||||
|
||||
digital health and solving Healthcare
|
||||
|
||||
problems but also giving them access to
|
||||
|
||||
um you know safely and securely to our
|
||||
|
||||
provider Network to our uh you know to
|
||||
|
||||
to our Outpatient Clinic Network which
|
||||
|
||||
is the largest owned and operated
|
||||
|
||||
Network in Canada by far uh so
|
||||
|
||||
um and and when these and it's it was
|
||||
|
||||
remarkable when we announced this
|
||||
|
||||
program we've had just in the in the
|
||||
|
||||
first uh week to 10 days we've had over
|
||||
|
||||
a hundred uh inbound prospects come in
|
||||
|
||||
uh that that wanted to you know
|
||||
|
||||
collaborate with us and again I don't
|
||||
|
||||
think that's necessarily for the money
|
||||
|
||||
you know we're saying we would invest a
|
||||
|
||||
minimum of a quarter of a million
|
||||
|
||||
dollars you know a lot of them will
|
||||
|
||||
likely be higher than a quarter of a
|
||||
|
||||
million dollars
|
||||
|
||||
so it's not life-changing money but but
|
||||
|
||||
our structural advantages and and and
|
||||
|
||||
the benefits that we have in the Well
|
||||
|
||||
Network those are extremely hard to come
|
||||
|
||||
by uh and I think and I think uh uh
|
||||
|
||||
you'll see us uh you know help some of
|
||||
|
||||
these companies uh succeed and they will
|
||||
|
||||
help us drive uh you know more
|
||||
|
||||
Innovation to that helps the provider
|
||||
|
||||
but speaking of this very interesting AI
|
||||
|
||||
I know your company just launched well
|
||||
|
||||
AI voice this is super interesting tell
|
||||
|
||||
me what it is and the impact it could
|
||||
|
||||
have on health care providers
|
||||
|
||||
yeah thanks for uh asking Richard our
|
||||
|
||||
providers uh are thrilled with this you
|
||||
|
||||
know we've we've had a number of of of
|
||||
|
||||
our own well providers testing this
|
||||
|
||||
technology and it it it really feels
|
||||
|
||||
like magic to them it's essentially an
|
||||
|
||||
ambient AI powered scribe so it's a it's
|
||||
|
||||
a service that with the consent of the
|
||||
|
||||
parties involved listens to the
|
||||
|
||||
conversation between a patient and
|
||||
|
||||
provider and then uh essentially
|
||||
|
||||
condenses that into a medically relevant
|
||||
|
||||
note for the chart files uh typically
|
||||
|
||||
that is a lengthy process a doctor has
|
||||
|
||||
to transcribe notes then review those
|
||||
|
||||
notes and make sure that uh a a a a
|
||||
|
||||
appropriate medically oriented and
|
||||
|
||||
structured node is is is uh prepared and
|
||||
|
||||
put into the chart and that could take
|
||||
|
||||
you know sometimes more than more time
|
||||
|
||||
than the actual consultation uh time and
|
||||
|
||||
so we believe that on average if it's
|
||||
|
||||
used regularly and consistently this can
|
||||
|
||||
give providers back at least a third of
|
||||
|
||||
their day
|
||||
|
||||
um and and it's it's just a game changer
|
||||
|
||||
uh and and uh we have now gone into
|
||||
|
||||
General release with this product it's
|
||||
|
||||
widely available in Canada uh it has
|
||||
|
||||
been integrated into our EMR which makes
|
||||
|
||||
it even more valuable tools like this
|
||||
|
||||
are going to start popping up but if
|
||||
|
||||
they're not integrated into your
|
||||
|
||||
practice management system then you have
|
||||
|
||||
to kind of have data in in more than one
|
||||
|
||||
place and and move that around a little
|
||||
|
||||
bit which which makes it a little bit
|
||||
|
||||
more difficult especially with HIPAA
|
||||
|
||||
requirements and and regulations so
|
||||
|
||||
again I think this is the first of many
|
||||
|
||||
types of different products and services
|
||||
|
||||
that allow doctors to place more
|
||||
|
||||
emphasis and focus on the patient
|
||||
|
||||
experience instead of having their head
|
||||
|
||||
in a laptop and looking at you once in a
|
||||
|
||||
while they'll be looking at you and
|
||||
|
||||
speaking to their practice management
|
||||
|
||||
system and I think this you know think
|
||||
|
||||
about it as Alexa for for our doctors uh
|
||||
|
||||
you know this this ability to speak uh
|
||||
|
||||
and and have you know uh you know Voice
|
||||
|
||||
driven AI assistant that does things
|
||||
|
||||
like this I think are going to be you
|
||||
|
||||
know incredibly helpful and valuable uh
|
||||
|
||||
for for healthcare providers
|
||||
|
||||
super fascinating I mean we're just
|
||||
|
||||
hearing you know more about AI maybe AI
|
||||
|
||||
for the first time but here you are with
|
||||
|
||||
a product already on the market in the
|
||||
|
||||
in the healthcare field that's going to
|
||||
|
||||
be pretty attractive to be out there uh
|
||||
|
||||
right ahead of many other people right
|
||||
|
||||
thank you Richard thanks for that
|
||||
|
||||
recognition that's been Our intention we
|
||||
|
||||
we want to demonstrate that we uh you
|
||||
|
||||
know that we're all in on ensuring that
|
||||
|
||||
technology that benefits providers uh is
|
||||
|
||||
is is accelerated and uh de-risked and
|
||||
|
||||
provided uh you know um in in a timely
|
||||
|
||||
way you know providers need this help we
|
||||
|
||||
we have a healthcare crisis in the
|
||||
|
||||
country that is generally characterized
|
||||
|
||||
as a as a lack of doctors and so imagine
|
||||
|
||||
if we can get our doctors to be 20 or 30
|
||||
|
||||
percent more productive through the use
|
||||
|
||||
of these types of tools well they're
|
||||
|
||||
going to just see more patience and and
|
||||
|
||||
that's going to help all of us and uh
|
||||
|
||||
and look if you step back Wells business
|
||||
|
||||
model is all about having exposure to
|
||||
|
||||
the success of doctors and doing our
|
||||
|
||||
best to help them be more successful
|
||||
|
||||
because we're in a revenue share
|
||||
|
||||
relationship with most of the doctors
|
||||
|
||||
that we work with and so this uh this is
|
||||
|
||||
good for the ecosystem it's great for
|
||||
|
||||
the provider and it's great for well as
|
||||
|
||||
well super fascinating I'm Ed shabazzi
|
||||
|
||||
CEO well Health Technologies ticker
|
||||
|
||||
w-e-l-l great to catch up again thank
|
||||
|
||||
you sir
|
||||
|
||||
thank you Richard appreciate you having
|
||||
|
||||
me
|
||||
|
||||
[Music]
|
||||
|
||||
thank you
|
||||
|
||||
970
server/evaluate/reference_texts/ref_sample_3.txt
Normal file
970
server/evaluate/reference_texts/ref_sample_3.txt
Normal file
@@ -0,0 +1,970 @@
|
||||
learning medicine is hard work osmosis
|
||||
|
||||
makes it easy it takes our lectures and
|
||||
|
||||
notes to create a personalized study
|
||||
|
||||
plan with exclusive videos practice
|
||||
|
||||
questions and flashcards and so much
|
||||
|
||||
more try it free today
|
||||
|
||||
in diabetes mellitus your body has
|
||||
|
||||
trouble moving glucose which is the type
|
||||
|
||||
of sugar from your blood into your cells
|
||||
|
||||
this leads to high levels of glucose in
|
||||
|
||||
your blood and not enough of it in your
|
||||
|
||||
cells and remember that your cells need
|
||||
|
||||
glucose as a source of energy so not
|
||||
|
||||
letting the glucose enter means that the
|
||||
|
||||
cells star for energy despite having
|
||||
|
||||
glucose right on their doorstep in
|
||||
|
||||
general the body controls how much
|
||||
|
||||
glucose is in the blood relative to how
|
||||
|
||||
much gets into the cells with two
|
||||
|
||||
hormones insulin and glucagon insulin is
|
||||
|
||||
used to reduce blood glucose levels and
|
||||
|
||||
glucagon is used to increase blood
|
||||
|
||||
glucose levels both of these hormones
|
||||
|
||||
are produced by clusters of cells in the
|
||||
|
||||
pancreas called islets of langerhans
|
||||
|
||||
insulin is secreted by beta cells in the
|
||||
|
||||
center of these islets and glucagon is
|
||||
|
||||
secreted by alpha cells in the periphery
|
||||
|
||||
of the islets insulin reduces the amount
|
||||
|
||||
of glucose in the blood by binding to
|
||||
|
||||
insulin receptors embedded in the cell
|
||||
|
||||
membrane of various insulin responsive
|
||||
|
||||
tissues like muscle cells in adipose
|
||||
|
||||
tissue when activated the insulin
|
||||
|
||||
receptors cause vesicles containing
|
||||
|
||||
glucose transporter that are inside the
|
||||
|
||||
cell to fuse with the cell membrane
|
||||
|
||||
allowing glucose to be transported into
|
||||
|
||||
the cell glucagon does exactly the
|
||||
|
||||
opposite it raises the blood glucose
|
||||
|
||||
levels by getting the liver to generate
|
||||
|
||||
new molecules of glucose from other
|
||||
|
||||
molecules and also break down glycogen
|
||||
|
||||
into glucose so that I can all get
|
||||
|
||||
dumped into the blood diabetes mellitus
|
||||
|
||||
is diagnosed when blood glucose levels
|
||||
|
||||
get too high and this is seen among 10
|
||||
|
||||
percent of the world population there
|
||||
|
||||
are two types of diabetes type 1 and
|
||||
|
||||
type 2 and the main difference between
|
||||
|
||||
them is the underlying mechanism that
|
||||
|
||||
causes the blood glucose levels to rise
|
||||
|
||||
about 10% of people with diabetes have
|
||||
|
||||
type 1 and the remaining 90% of people
|
||||
|
||||
with diabetes have type 2 let's start
|
||||
|
||||
with type 1 diabetes mellitus sometimes
|
||||
|
||||
just called type 1 diabetes in this
|
||||
|
||||
situation the body doesn't make enough
|
||||
|
||||
insulin the reason this happens is that
|
||||
|
||||
in type 1 diabetes there's a type 4
|
||||
|
||||
hypersensitivity response or a cell
|
||||
|
||||
mediated immune response where a
|
||||
|
||||
person's own T cells at
|
||||
|
||||
the pancreas as a quick review remember
|
||||
|
||||
that the immune system has T cells that
|
||||
|
||||
react to all sorts of antigens which are
|
||||
|
||||
usually small peptides polysaccharides
|
||||
|
||||
or lipids and that some of these
|
||||
|
||||
antigens are part of our own body cells
|
||||
|
||||
it doesn't make sense to allow T cells
|
||||
|
||||
that will attack our own cells to hang
|
||||
|
||||
around until there's this process to
|
||||
|
||||
eliminate them called self tolerance in
|
||||
|
||||
type 1 diabetes there's a genetic
|
||||
|
||||
abnormality that causes a loss of self
|
||||
|
||||
tolerance among T cells that
|
||||
|
||||
specifically target the beta cell
|
||||
|
||||
antigens losing self tolerance means
|
||||
|
||||
that these T cells are allowed to
|
||||
|
||||
recruit other immune cells and
|
||||
|
||||
coordinate an attack on these beta cells
|
||||
|
||||
losing beta cells means less insulin and
|
||||
|
||||
less insulin means that glucose piles up
|
||||
|
||||
in the blood because it can't enter the
|
||||
|
||||
body's cells one really important group
|
||||
|
||||
of genes involved in regulation of the
|
||||
|
||||
immune response is the human leukocyte
|
||||
|
||||
antigen system or HLA system even though
|
||||
|
||||
it's called a system it's basically this
|
||||
|
||||
group of genes on chromosome 6 that
|
||||
|
||||
encode the major histocompatibility
|
||||
|
||||
complex or MHC which is a protein that's
|
||||
|
||||
extremely important in helping the
|
||||
|
||||
immune system recognize foreign
|
||||
|
||||
molecules as well as maintaining self
|
||||
|
||||
tolerance MHC is like the serving
|
||||
|
||||
platter that antigens are presented to
|
||||
|
||||
the immune cells on interestingly people
|
||||
|
||||
with type 1 diabetes often have specific
|
||||
|
||||
HLA genes in common with each other one
|
||||
|
||||
called
|
||||
|
||||
HLA dr3 and another called HLA dr4 but
|
||||
|
||||
this is just a genetic clue right
|
||||
|
||||
because not everyone with HLA dr3 and
|
||||
|
||||
HLA dr4 develops diabetes in diabetes
|
||||
|
||||
mellitus type 1 destruction of beta
|
||||
|
||||
cells usually starts early in life but
|
||||
|
||||
sometimes up to 90% of the beta cells
|
||||
|
||||
are destroyed before symptoms crop up
|
||||
|
||||
for clinical symptoms of uncontrolled
|
||||
|
||||
diabetes that all sound similar our
|
||||
|
||||
polyphagia glycosuria polyuria and
|
||||
|
||||
polydipsia let's go through them one by
|
||||
|
||||
one even though there's a lot of glucose
|
||||
|
||||
in the blood it cannot get into the
|
||||
|
||||
cells which leaves cells starved for
|
||||
|
||||
energy so in response adipose tissue
|
||||
|
||||
starts breaking down fat called
|
||||
|
||||
lipolysis
|
||||
|
||||
and muscle tissue starts breaking down
|
||||
|
||||
proteins both of which results in weight
|
||||
|
||||
loss for someone with uncontrolled
|
||||
|
||||
diabetes this catabolic state leaves
|
||||
|
||||
people feeling hungry
|
||||
|
||||
also known as poly fascia Faiza means
|
||||
|
||||
eating and poly means a lot now with
|
||||
|
||||
high glucose levels that means that when
|
||||
|
||||
blood gets filtered through the kidneys
|
||||
|
||||
some of it starts to spill into the
|
||||
|
||||
urine called glycosuria glyco surfers to
|
||||
|
||||
glucose and urea the urine since glucose
|
||||
|
||||
is osmotically active water tends to
|
||||
|
||||
follow it resulting in an increase in
|
||||
|
||||
urination or polyuria poly again refers
|
||||
|
||||
to a lot and urea again refers to urine
|
||||
|
||||
finally because there's so much
|
||||
|
||||
urination people with uncontrolled
|
||||
|
||||
diabetes become dehydrated and thirsty
|
||||
|
||||
or polydipsia poly means a lot and dip
|
||||
|
||||
SIA means thirst even though people with
|
||||
|
||||
diabetes are not able to produce their
|
||||
|
||||
own insulin they can still respond to
|
||||
|
||||
insulin so treatment involves lifelong
|
||||
|
||||
insulin therapy to regulate their blood
|
||||
|
||||
glucose levels and basically enable
|
||||
|
||||
their cells to use glucose
|
||||
|
||||
one really serious complication with
|
||||
|
||||
type 1 diabetes is called diabetic
|
||||
|
||||
ketoacidosis or DKA to understand it
|
||||
|
||||
let's go back to the process of
|
||||
|
||||
lipolysis where fat is broken down into
|
||||
|
||||
free fatty acids after that happens the
|
||||
|
||||
liver turns the fatty acids into ketone
|
||||
|
||||
bodies like Osito acetic acid in beta
|
||||
|
||||
hydroxy butyrate acid a seed of acetic
|
||||
|
||||
acid is a keto acid because it has a
|
||||
|
||||
ketone group in a carboxylic acid group
|
||||
|
||||
beta hydroxy rhetoric acid on the other
|
||||
|
||||
hand even though it's still one of the
|
||||
|
||||
ketone bodies isn't technically a keto
|
||||
|
||||
acid since its ketone group has been
|
||||
|
||||
reduced to a hydroxyl group these ketone
|
||||
|
||||
bodies are important because they can be
|
||||
|
||||
used by cells for energy but they also
|
||||
|
||||
increase the acidity of the blood which
|
||||
|
||||
is why it's called ketoacidosis and the
|
||||
|
||||
blood becoming really acidic can have
|
||||
|
||||
major effects throughout the body
|
||||
|
||||
individuals can develop custom all
|
||||
|
||||
respiration which is a deep and labored
|
||||
|
||||
breathing as the body tries to move
|
||||
|
||||
carbon dioxide out of the blood in an
|
||||
|
||||
effort to reduce its acidity cells also
|
||||
|
||||
have a transporter that exchanges
|
||||
|
||||
hydrogen ions or protons for potassium
|
||||
|
||||
when the blood gets acidic it's by
|
||||
|
||||
definition loaded with protons that get
|
||||
|
||||
sent into cells while potassium gets
|
||||
|
||||
sent into the fluid outside cells
|
||||
|
||||
another thing to keep in mind is that in
|
||||
|
||||
addition to helping glucose enter cells
|
||||
|
||||
insulin stimulates the sodium potassium
|
||||
|
||||
ATPase --is which help potassium get
|
||||
|
||||
into the cells and so without insulin
|
||||
|
||||
more potassium stays in the fluid
|
||||
|
||||
outside cells both of these mechanisms
|
||||
|
||||
lead to increased potassium in the fluid
|
||||
|
||||
outside cells which quickly makes it
|
||||
|
||||
into the blood and causes hyperkalemia
|
||||
|
||||
the potassium is then excreted so over
|
||||
|
||||
time even though the blood potassium
|
||||
|
||||
levels remain high over all stores of
|
||||
|
||||
potassium in the body which include
|
||||
|
||||
potassium inside cells starts to run low
|
||||
|
||||
individuals will also have a high anion
|
||||
|
||||
gap which reflects a large difference in
|
||||
|
||||
the unmeasured negative and positive
|
||||
|
||||
ions in the serum largely due to the
|
||||
|
||||
build-up of ketoacids
|
||||
|
||||
diabetic ketoacidosis can happen even in
|
||||
|
||||
people who have already been diagnosed
|
||||
|
||||
with diabetes and currently have some
|
||||
|
||||
sort of insulin therapy
|
||||
|
||||
in states of stress like an infection
|
||||
|
||||
the body releases epinephrine which in
|
||||
|
||||
turn stimulates the release of glucagon
|
||||
|
||||
too much glucagon can tip the delicate
|
||||
|
||||
hormonal balance of glucagon and insulin
|
||||
|
||||
in favor of elevating blood sugars and
|
||||
|
||||
can lead to a cascade of events we just
|
||||
|
||||
described increased glucose in the blood
|
||||
|
||||
loss of glucose in the urine loss of
|
||||
|
||||
water dehydration and in parallel and
|
||||
|
||||
need for alternative energy generation
|
||||
|
||||
of ketone bodies and ketoacidosis
|
||||
|
||||
interestingly both ketone bodies break
|
||||
|
||||
down into acetone and escape as a gas by
|
||||
|
||||
getting breathed out the lungs which
|
||||
|
||||
gives us sweet fruity smell to a
|
||||
|
||||
person's breath in general though that's
|
||||
|
||||
the only sweet thing about this illness
|
||||
|
||||
which also causes nausea vomiting and if
|
||||
|
||||
severe mental status changes and acute
|
||||
|
||||
cerebral edema
|
||||
|
||||
treatment of a DKA episode involves
|
||||
|
||||
giving plenty of fluids which helps with
|
||||
|
||||
dehydration insulin which helps lower
|
||||
|
||||
blood glucose levels and replacement of
|
||||
|
||||
electrolytes like potassium all of which
|
||||
|
||||
help to reverse the acidosis now let's
|
||||
|
||||
switch gears and talk about type 2
|
||||
|
||||
diabetes which is where the body makes
|
||||
|
||||
insulin but the tissues don't respond as
|
||||
|
||||
well to it the exact reason why cells
|
||||
|
||||
don't respond isn't fully understood
|
||||
|
||||
essentially the body's providing the
|
||||
|
||||
normal amount of insulin but the cells
|
||||
|
||||
don't move their glucose transporters to
|
||||
|
||||
their membrane in response which
|
||||
|
||||
remember is needed for the glucose to
|
||||
|
||||
get into the cells these cells therefore
|
||||
|
||||
have insulin resistance some risk
|
||||
|
||||
factors for insulin resistance are
|
||||
|
||||
obesity lack of exercise and
|
||||
|
||||
hypertension the exact mechanisms are
|
||||
|
||||
still being explored for example in
|
||||
|
||||
excess of adipose tissue or fat is
|
||||
|
||||
thought to cause the release of free
|
||||
|
||||
fatty acids in so-called edible kinds
|
||||
|
||||
which are signaling molecules that can
|
||||
|
||||
cause inflammation which seems related
|
||||
|
||||
to insulin resistance
|
||||
|
||||
however many people that are obese are
|
||||
|
||||
not diabetic so genetic factors probably
|
||||
|
||||
play a major role as well we see this
|
||||
|
||||
when we look at twin studies as well
|
||||
|
||||
we're having a twin with type-2 diabetes
|
||||
|
||||
increases the risk of developing type 2
|
||||
|
||||
diabetes completely independently of
|
||||
|
||||
other environmental risk factors in type
|
||||
|
||||
2 diabetes since tissues don't respond
|
||||
|
||||
as well to normal levels of insulin the
|
||||
|
||||
body ends up producing more insulin in
|
||||
|
||||
order to get the same effect and move
|
||||
|
||||
glucose out of the blood
|
||||
|
||||
they do this through beta cell
|
||||
|
||||
hyperplasia an increased number of beta
|
||||
|
||||
cells and beta cell hypertrophy where
|
||||
|
||||
they actually grow in size all in this
|
||||
|
||||
attempt to pump out more insulin this
|
||||
|
||||
works for a while and by keeping insulin
|
||||
|
||||
levels higher than normal blood glucose
|
||||
|
||||
levels can be kept normal called normal
|
||||
|
||||
glycemia now along with insulin beta
|
||||
|
||||
cells also secrete islet amyloid
|
||||
|
||||
polypeptide or amylin so while beta
|
||||
|
||||
cells are cranking out insulin they also
|
||||
|
||||
secrete an increased amount of amylin
|
||||
|
||||
over time Emlyn builds up and aggregates
|
||||
|
||||
in the islets this beta cell
|
||||
|
||||
compensation though is not sustainable
|
||||
|
||||
and over time those maxed out beta cells
|
||||
|
||||
get exhausted and they become
|
||||
|
||||
dysfunctional and undergo hypo trophy
|
||||
|
||||
and get smaller as well as hypoplasia
|
||||
|
||||
and die off as beta cells are lost in
|
||||
|
||||
insulin levels decrease glucose levels
|
||||
|
||||
in the blood start to increase in
|
||||
|
||||
patients develop hyperglycemia which
|
||||
|
||||
leads to similar clinical signs that we
|
||||
|
||||
mentioned before like Paul aphasia
|
||||
|
||||
glycosuria polyuria polydipsia but
|
||||
|
||||
unlike type 1 diabetes there's generally
|
||||
|
||||
some circulating insulin in type 2
|
||||
|
||||
diabetes from the beta cells that are
|
||||
|
||||
trying to compensate for the insulin
|
||||
|
||||
resistance this means that the insulin
|
||||
|
||||
glucagon balances such that diabetic
|
||||
|
||||
ketoacidosis does not usually develop
|
||||
|
||||
having said that a complication called
|
||||
|
||||
hyperosmolar hyperglycemic state or HHS
|
||||
|
||||
is much more common in type 2 diabetes
|
||||
|
||||
than type 1 diabetes and it causes
|
||||
|
||||
increased plasma osmolarity due to
|
||||
|
||||
extreme dehydration and concentration of
|
||||
|
||||
the blood to help understand this
|
||||
|
||||
remember that glucose is a polar
|
||||
|
||||
molecule that cannot passively diffuse
|
||||
|
||||
across cell membranes which means that
|
||||
|
||||
it acts as a solute so when levels of
|
||||
|
||||
glucose are super high in the blood
|
||||
|
||||
meaning it's a hyperosmolar State water
|
||||
|
||||
starts to leave the body cells and enter
|
||||
|
||||
the blood vessels leaving the cells were
|
||||
|
||||
relatively dry in travailed rather than
|
||||
|
||||
plump and juicy blood vessels that are
|
||||
|
||||
full of water lead to increased
|
||||
|
||||
urination and total body dehydration and
|
||||
|
||||
this is a very serious situation because
|
||||
|
||||
the dehydration of the body's cells and
|
||||
|
||||
in particular the brain can cause a
|
||||
|
||||
number of symptoms including mental
|
||||
|
||||
status changes in HHS you can sometimes
|
||||
|
||||
see mild ketone emia and acidosis but
|
||||
|
||||
not to the extent that it's seen in DKA
|
||||
|
||||
and in DKA you can see some hyper
|
||||
|
||||
osmolarity so there's definitely overlap
|
||||
|
||||
between these two syndromes
|
||||
|
||||
besides type 1 and type 2 diabetes there
|
||||
|
||||
are also a couple other subtypes of
|
||||
|
||||
diabetes mellitus gestational diabetes
|
||||
|
||||
is when pregnant women have increased
|
||||
|
||||
blood glucose which is particularly
|
||||
|
||||
during the third trimester although
|
||||
|
||||
ultimately unknown the cause is thought
|
||||
|
||||
to be related to pregnancy hormones that
|
||||
|
||||
interfere with insulins action on
|
||||
|
||||
insulin receptors also sometimes people
|
||||
|
||||
can develop drug-induced diabetes which
|
||||
|
||||
is where medications have side effects
|
||||
|
||||
that tend to increase blood glucose
|
||||
|
||||
levels the mechanism for both of these
|
||||
|
||||
is thought to be related to insulin
|
||||
|
||||
resistance like type 2 diabetes rather
|
||||
|
||||
than an autoimmune destruction process
|
||||
|
||||
like in type 1 diabetes diagnosing type
|
||||
|
||||
1 or type 2 diabetes is done by getting
|
||||
|
||||
a sense for how much glucose is floating
|
||||
|
||||
around in the blood and has specific
|
||||
|
||||
standards that the World Health
|
||||
|
||||
Organization uses very commonly a
|
||||
|
||||
fasting glucose test is taken where the
|
||||
|
||||
person doesn't eat or drink except the
|
||||
|
||||
water that's okay for a total of eight
|
||||
|
||||
hours and then has their blood tested
|
||||
|
||||
for glucose levels levels of 100
|
||||
|
||||
milligrams per deciliter to 120
|
||||
|
||||
five milligrams per deciliter indicates
|
||||
|
||||
pre-diabetes and 126 milligrams per
|
||||
|
||||
deciliter or higher indicates diabetes a
|
||||
|
||||
non fasting a random glucose test can be
|
||||
|
||||
done at any time with 200 milligrams per
|
||||
|
||||
deciliter or higher being a red flag for
|
||||
|
||||
diabetes another test is called an oral
|
||||
|
||||
glucose tolerance test where person is
|
||||
|
||||
given glucose and then blood samples are
|
||||
|
||||
taken at time intervals to figure out
|
||||
|
||||
how well it's being cleared from the
|
||||
|
||||
blood the most important interval being
|
||||
|
||||
two hours later levels of 140 milligrams
|
||||
|
||||
per deciliter to 199 milligrams per
|
||||
|
||||
deciliter indicate pre-diabetes
|
||||
|
||||
and 200 or above indicates diabetes
|
||||
|
||||
another thing to know is that when blood
|
||||
|
||||
glucose levels get high the glucose can
|
||||
|
||||
also stick to proteins that are floating
|
||||
|
||||
around in the blood or in cells so that
|
||||
|
||||
brings us to another type of test that
|
||||
|
||||
can be done which is the hba1c test
|
||||
|
||||
which tests for the proportion of
|
||||
|
||||
hemoglobin in red blood cells that has
|
||||
|
||||
glucose stuck to it called glycated
|
||||
|
||||
hemoglobin hba1c levels of 5.7% 26.4%
|
||||
|
||||
indicate pre-diabetes
|
||||
|
||||
and 6.5 percent or higher indicates
|
||||
|
||||
diabetes this proportion of glycated
|
||||
|
||||
hemoglobin doesn't change day to day so
|
||||
|
||||
it gives a sense for whether the blood
|
||||
|
||||
glucose levels have been high over the
|
||||
|
||||
past two to three months finally we have
|
||||
|
||||
the c-peptide test which tests for
|
||||
|
||||
byproducts of insulin production if the
|
||||
|
||||
level of c-peptide is low or absent it
|
||||
|
||||
means the pancreas is no longer
|
||||
|
||||
producing enough insulin and the glucose
|
||||
|
||||
cannot enter the cells
|
||||
|
||||
for type one diabetes insulin is the
|
||||
|
||||
only treatment option for type 2
|
||||
|
||||
diabetes on the other hand lifestyle
|
||||
|
||||
changes like weight loss and exercise
|
||||
|
||||
along with a healthy diet and an oral
|
||||
|
||||
anti-diabetic medication like metformin
|
||||
|
||||
in several other classes can sometimes
|
||||
|
||||
be enough to reverse some of that
|
||||
|
||||
insulin resistance and keep blood sugar
|
||||
|
||||
levels in check however if oral
|
||||
|
||||
anti-diabetic medications fail type 2
|
||||
|
||||
diabetes can also be treated with
|
||||
|
||||
insulin something to bear in mind is
|
||||
|
||||
that insulin treatment comes with a risk
|
||||
|
||||
of hypoglycemia especially if insulin is
|
||||
|
||||
taken without a meal symptoms of
|
||||
|
||||
hypoglycemia can be mild like weakness
|
||||
|
||||
hunger and shaking but they can progress
|
||||
|
||||
to a loss of consciousness in seizures
|
||||
|
||||
in severe cases in mild cases drinking
|
||||
|
||||
juices or eating candy or sugar might be
|
||||
|
||||
enough to bring blood sugar up but in
|
||||
|
||||
severe cases intravenous glucose should
|
||||
|
||||
be given as soon as possible
|
||||
|
||||
the FDA has also recently approved
|
||||
|
||||
intranasal glucagon as a treatment for
|
||||
|
||||
severe hypoglycemia all right now over
|
||||
|
||||
time high glucose levels can cause
|
||||
|
||||
damage to tiny blood vessels while the
|
||||
|
||||
micro vasculature in arterioles a
|
||||
|
||||
process called hyaline
|
||||
|
||||
arteriolosclerosis is where the walls of
|
||||
|
||||
the arterioles develop hyaline deposits
|
||||
|
||||
which are deposits of proteins and these
|
||||
|
||||
make them hard and inflexible in
|
||||
|
||||
capillaries the basement membrane can
|
||||
|
||||
thicken and make it difficult for oxygen
|
||||
|
||||
to easily move from the capillary to the
|
||||
|
||||
tissues causing hypoxia
|
||||
|
||||
one of the most significant effects is
|
||||
|
||||
that diabetes increases the risk of
|
||||
|
||||
medium and large arterial wall damage
|
||||
|
||||
and subsequent atherosclerosis which can
|
||||
|
||||
lead to heart attacks and strokes which
|
||||
|
||||
are major causes of morbidity and
|
||||
|
||||
mortality for patients with diabetes in
|
||||
|
||||
the eyes diabetes can lead to
|
||||
|
||||
retinopathy and evidence of that can be
|
||||
|
||||
seen on a fundus copic exam that shows
|
||||
|
||||
cotton-wool spots or flare hemorrhages
|
||||
|
||||
and can eventually cause blindness in
|
||||
|
||||
the kidneys the a ferrant and efferent
|
||||
|
||||
arterioles as well as the glomerulus
|
||||
|
||||
itself can get damaged which can lead to
|
||||
|
||||
an F Radek syndrome that slowly
|
||||
|
||||
diminishes the kidneys ability to filter
|
||||
|
||||
blood over time and can ultimately lead
|
||||
|
||||
to dialysis diabetes can also affect the
|
||||
|
||||
function of nerves causing symptoms like
|
||||
|
||||
a decrease in sensation in the toes and
|
||||
|
||||
fingers sometimes called a stocking
|
||||
|
||||
glove distribution as well as causes the
|
||||
|
||||
autonomic nervous system to malfunction
|
||||
|
||||
and that system controls a number of
|
||||
|
||||
body functions
|
||||
|
||||
everything from sweating to passing gas
|
||||
|
||||
finally both the poor blood supply and
|
||||
|
||||
nerve damage can lead to ulcers
|
||||
|
||||
typically on the feet that don't heal
|
||||
|
||||
quickly and can get pretty severe and
|
||||
|
||||
need to be amputated these are some of
|
||||
|
||||
the complications of uncontrolled
|
||||
|
||||
diabetes which is why it's important to
|
||||
|
||||
diagnose and control diabetes through a
|
||||
|
||||
healthy lifestyle medications to reduce
|
||||
|
||||
insulin resistance and even insulin
|
||||
|
||||
therapy if beta cells have been
|
||||
|
||||
exhausted while type 1 diabetes cannot
|
||||
|
||||
be prevented type 2 diabetes can in fact
|
||||
|
||||
many people with diabetes can control
|
||||
|
||||
their blood sugar levels really
|
||||
|
||||
effectively and live a full and active
|
||||
|
||||
life without any of the complications
|
||||
|
||||
thanks for watching if you're interested
|
||||
|
||||
in a deeper dive on this topic take a
|
||||
|
||||
look at as Moses org where we have
|
||||
|
||||
flashcards questions and other awesome
|
||||
|
||||
tools to help you learn medicine
|
||||
|
||||
you
|
||||
|
||||
238
server/poetry.lock
generated
238
server/poetry.lock
generated
@@ -1337,6 +1337,21 @@ files = [
|
||||
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "jiwer"
|
||||
version = "3.0.2"
|
||||
description = "Evaluate your speech-to-text system with similarity measures such as word error rate (WER)"
|
||||
optional = false
|
||||
python-versions = ">=3.7,<4.0"
|
||||
files = [
|
||||
{file = "jiwer-3.0.2-py3-none-any.whl", hash = "sha256:cbf5872e0431942847765e444b338cd74ed9a96682532da87e46575010b76fd2"},
|
||||
{file = "jiwer-3.0.2.tar.gz", hash = "sha256:52bb2a3dba0589e85e6598c40c413e1f2a6a2f7f7c57ce9f7b2c094039618235"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
click = ">=8.1.3,<9.0.0"
|
||||
rapidfuzz = "2.13.7"
|
||||
|
||||
[[package]]
|
||||
name = "jmespath"
|
||||
version = "1.0.1"
|
||||
@@ -1348,6 +1363,120 @@ files = [
|
||||
{file = "jmespath-1.0.1.tar.gz", hash = "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "levenshtein"
|
||||
version = "0.21.1"
|
||||
description = "Python extension for computing string edit distances and similarities."
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
files = [
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:59e5054c9dea821840af4623a4059c8f0ae56548a5eae8b9c7aaa0b3f1e33340"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:11694c6f7119d68cc199ff3b1407560c0efb0cc49f288169f28b2e032ee03cda"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f5f7ce639bea0f5e95a1f71963624b85521a39928a2a1bb0e66f6180facf5969"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39e8a1866325b6d54de4e7d1bffffaf4b4c8cbf0988f47f0f2e929edfbeb870d"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed73d619e203aad54e2e6119a2b58b7568a36bd50a547817d13618ea0acf4412"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:50fbe01be99554f644657c32a9e3085369d23e8ccc540d855c683947d3b48b67"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:675ba3afaa9e8ec393eb1eeee651697036e8391be54e6c28eae4bfdff4d5e64e"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c89a5ac319a80c131ca8d499ae0f7a91d4dd1dc3b2e9d8b095e991597b79c8f9"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:f9e3a5f4386c8f1811153f309a0ba3dc47d17e81a6dd29aa22d3e10212a2fd73"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ea042ba262ea2a95d93c4d2d5879df956cf6c85ce22c037e3f0d4491182f10c5"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:622bc670b906c4bf219755625e9fa704ff07c561a90f1aa35f3f2d8ecd3ec088"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:f0e51ff6d5665884b0e39b4ae0ef4e2d2d0174147147db7a870ddc4123882212"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cc8eb12c48598b20b4b99128bc2bd62974dfb65204ceb37807480788b1e66e64"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-win32.whl", hash = "sha256:04d338c9153ddf70a32f324cf9f902fe94a6da82122b8037ccde969d4cc0a94b"},
|
||||
{file = "Levenshtein-0.21.1-cp310-cp310-win_amd64.whl", hash = "sha256:5a10fc3be2bfb05b03b868d462941e4099b680b7f358a90b8c6d7d5946e9e97c"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:938581ba87b306675bc41e21c2b2822a9eb83fb1a0e4a4903b7398d7845b22e3"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06da6c47aa459c725ee90dab467cd2f66956c5f9a43ddb51a0fe2496960f1d3e"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:eea308d98c64dbea48ac351011c4adf66acd936c4de2bf9955826ba8435197e2"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a51974fcb8a94284325cb88b474b76227532a25b035938a46167bebd1646718e"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:87edb05fc6e4eb14008433f02e89815a756fe4ecc32d7180bb757f26e4161e06"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aee4f570652ad77961e5ab871d11fd42752e7d2117b08324a0c8801a7ee0a7c5"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:43a06b0b492e0d936deff751ad4757786ba7cb5eee510d53b6dfe92c924ff733"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:952e72f173a65f271dfee102b5571004b6594d4f199864ddead77115a2c147fd"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3f855669e1399597f7a2670310cf20fc04a35c6c446dd70320398e9aa481b3d"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:ca992783feaf1d6e25403340157fb584cf71371b094a575134393bba10b974fa"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:20361f42f6e7efa5853f69a41a272e9ecb90da284bec4312e42b58fa42b9a752"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:9bcb3abbe97975cc6a97baf24a3b6e0491472ecedbc0247a41eb2c8d73ecde5d"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:72b0b84adc52f4cf970a1bb276e76e115b30d693d6dbcd25fca0bcee85ca7cc7"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-win32.whl", hash = "sha256:4217ae380f42f825862eb8e2f9beca627fe9ab613f36e206842c003bb1affafc"},
|
||||
{file = "Levenshtein-0.21.1-cp311-cp311-win_amd64.whl", hash = "sha256:12bb3540e021c73c5d8796ecf8148afd441c4471731924a112bc31bc25abeabf"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:a0fa251b3b4c561d2f650d9a61fb8980815492bb088a0a521236995a1872e171"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4bf11b89d8d7a7707ae5cac1ef86ac4ff78491482df037289470db8f0378043"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91dca7085aa358da71fa50682fc8ff7e21365c99ef17dc1962a7bbf488003528"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4f187f0929a35b6ddabc1324161e8c73ddbd4a7747249f10ec9ceaa793e904f"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d997da10fdf1a82e208fd1b05aba40705ca3f053919c84d2e952141d33e3ab3"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed8f99e4e4ba8a43bb4fe0255606724f22069405fa1e3be679a2d90f74770e5"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5acb7e84ccd619dcff6e04928fa8d8cc24f55bb2c9cdfe96620ed85b0a82a7c7"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:62dca15301bdba4ec7fcf53c39dd8d9c198194990cf035def3f47b7cb9c3213e"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:832951ad7b5ee0df8152f239a9fc602322da055264459dcf4d50d3ed68e68045"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:e8ab4d5acdd3ac17161539d9f2ea764497dc269dcd8dc722ae4a394c7b64ae7f"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:3c13450450d537ec7ede3781be72d72db37cb131943148c8ada58b34e143fc6f"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-win32.whl", hash = "sha256:267ad98befffeed90e73b8c644a297027adb81f61044843aeade7b4a44ccc7d7"},
|
||||
{file = "Levenshtein-0.21.1-cp36-cp36m-win_amd64.whl", hash = "sha256:d66d8f3ebde14840a310a557c8f69eed3e153f2477747365355d058208eea515"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:78d0fb5faef0413864c1b593e5261a840eaa47842b0fa4af7be4c09d90b24a14"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9dda976c1dae2a0b41a109facc48d1d242c7acb30ab4c04d8421496da6e153aa"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1dc54aeb02f38a36f16bca6b0f9d07462686d92716424d9a4a3fdd11f3624528"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:463fd7558f25c477c7e4a59af35c661e133473f62bb02ed2c07c9c95e1c2dc66"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f00495a80c5850466f0a57ea874761f78079702e28b63a1b6573ad254f828e44"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31aa08e8ddac402edd530aaf708ab085fea7299c499404989eabfde143377911"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9e96217a7c6a7d43071c830b1353a3ee669757ae477673f0fd3e3a97def6d410"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:d83b8c0ce41e410af143bd3abef94e480d143fdb83e60a01bab9069bf565dada"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:309f134f3d42fa7df7efbbd7975f2331de8c36da3ebdb3fad59abae84268abba"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:267bc6725506571fd3c03afcc871fa5cbf3d2cb6e4bd11043790fa60cbb0f8a4"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4a6cd85ac5f7800e8127b3194fa02c59be735b6bdfe55b8516d094652235e038"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-win32.whl", hash = "sha256:13e87517ce788d71deaa73e37332a67c4085c13e58ea3a0218092d555d1872ce"},
|
||||
{file = "Levenshtein-0.21.1-cp37-cp37m-win_amd64.whl", hash = "sha256:918f2e0f590cacb30edb88e7eccbf71b340d5f080c9e69009f1f00dc24810a67"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:d17c2ee8aa380c012b3ba015b87502934662c51b7609ef17366c76863e9551d6"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ee847d3e49870e914074fd31c069a1aaba6f71bee650d41de48e7e4b11671bf0"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8d01425bd54c482ccbbc6d953633450a2bdbb7d12450d9eeba6073a6d0f06a3c"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bff4f236d1b6c556a77975812a4d51071181721f3a29c08b42e5c4aa11730957"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:35a603d952e9f286fe8053332862c8cff426f5d8a85ee962c3a0f597f4c463c4"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9546ded45fb3cf8773ade9c91de164c6cb2cb4927516289abd422a262e81906c"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79259b10f105f78853210d8769cf77ca55dac8c368dca33b4c10ffa8965e2543"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:41e0e539638a27b5e90a5d46679375f93a1cb65cf06efe7c413cf76f71d3d467"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ccd0b89300a25decdb34d7c4efe2a971438015f552eeb416b8da12918cb3edc0"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ef365ec78938597623d4fb96c8b0db423ab484fcfc00fae44c34b738b1eb1924"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:e701b9dfb121faf71b0c5757485fc49e1b511b7b8a80034aa1f580488f8f872e"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:e4c2fe1f49f1d8476fe44e243569d775c5454dca70a13be568430d2d2d760ea2"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:40a5e38d0c3e488d1dca5dc9c2691c000764813d4006c243f2ebd39e0b331e95"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-win32.whl", hash = "sha256:6c08879d0cf761cd750e976fda67bcc23cf1e485eaa030942e6628b876f4c6d8"},
|
||||
{file = "Levenshtein-0.21.1-cp38-cp38-win_amd64.whl", hash = "sha256:248348e94dee05c787b44f16533a366ec5bf8ba949c604ad0db69d0c872f3539"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3824e9f75ec9f373fc8b4df23eae668918953487f5ff06db282ddcb3f9c802d2"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e2ed817fa682243ef2e8a2728fcd0f9352d4e5edd104db44862d0bb55c75a7e"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:94a6ffd7257d12c64de34bc9f801a211e2daa624ec276305f8c67963a9896efa"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6833f8cefb96b8ccac457ad421866a74f4de973e7001699fcbbbe9ccb59a5c66"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8126d2b51621483823c6e31d16bc1f5a964ae976aab4f241bbe74ed19d93770"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58eaab403b77e62e096cbcbaf61728c8736f9f7a3e36a58fb663461e5d70144f"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47e6d66fe0110fd8e6efb1939d686099170c27b3ca838eab0c215f0781f05f06"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f5a1f28b34a15dd2d67bcc324f6661df8cfe66d6ec7ee7a64e921af8ae4c39b7"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:c37609f4e460e570810ec5176c5cdf91c494a9979638f7fef5fd345597245d17"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:656c70814280c4002af89112f1457b6ad24c42dfba58dcb2047a249ae8ccdd04"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:863d507cba67de2fa66d5501ed1bc5029363d2b393662ac7d740dd0330c66aba"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:9437c2342937decf3cf5ac79d0b9497734897c0a09dc813378c97f2916b7aa76"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a1cd48db3d03adb88bf71b45de77b9720f96d3b9d5ab7a32304352baec482689"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-win32.whl", hash = "sha256:023dffdde576639e48cab3cc835bfaf9c441df7a8e2829bf20104868db6e4f72"},
|
||||
{file = "Levenshtein-0.21.1-cp39-cp39-win_amd64.whl", hash = "sha256:dcc712696d4332962ecab6e4df40d5126d7379c6612e6058ee2e9d3f924387e3"},
|
||||
{file = "Levenshtein-0.21.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9a8d60084e1c9e87ae247c601e331708de09ed23219b5e39af7c8e9115ab8152"},
|
||||
{file = "Levenshtein-0.21.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ffa6762f8ef1e7dfba101babe43de6edc541cbe64d33d816314ac67cd76c3979"},
|
||||
{file = "Levenshtein-0.21.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eec8a1eaaeadc217c15bc77d01bb29e146acdae73a0b2e9df1ad162263c9752e"},
|
||||
{file = "Levenshtein-0.21.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5da0e2dbddb98da890fb779823df991ad50f184b3d986b8c68784eecbb087f01"},
|
||||
{file = "Levenshtein-0.21.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:edac6490f84e8a0456cb40f6729d4199311ce50ca0ea4958572e1b7ea99f546c"},
|
||||
{file = "Levenshtein-0.21.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:b33e2cbaca6f7d01092a28711605568dbc08a3bb7b796d8986bf5d0d651a0b09"},
|
||||
{file = "Levenshtein-0.21.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69a430ab564d286f309c19f7abed34fce9c144f39f984c609ee690dd175cc421"},
|
||||
{file = "Levenshtein-0.21.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f30474b2906301594c8fb64cb7492c6978290c466a717c4b5316887a18b77af5"},
|
||||
{file = "Levenshtein-0.21.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9817dca597abde9fc9571d56a7eca8bd667e9dfc0867b190f1e8b43ce4fde761"},
|
||||
{file = "Levenshtein-0.21.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:7d7e00e8cb45981386df9d3f99073ba7de59bdb739069766b32906421bb1026b"},
|
||||
{file = "Levenshtein-0.21.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9a072cb0f6e90092c4323cd7731eb539a79ac360045dbe3cc49a123ba381fc5"},
|
||||
{file = "Levenshtein-0.21.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d880a87aca186342bc2fe16b064c3ed434d2a0c170c419f23b4e00261a5340a"},
|
||||
{file = "Levenshtein-0.21.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f282711a220d1bdf245da508e1fefdf7680d1f7482a094e37465674a7e6985ae"},
|
||||
{file = "Levenshtein-0.21.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdba9f8a7a98b0c4c0bc004b811fb31a96521cd264aeb5375898478e7703de4d"},
|
||||
{file = "Levenshtein-0.21.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b2410469cc8fd0f42aa00e63063c42f8aff501996cd5424a5c904739bdaaf4fe"},
|
||||
{file = "Levenshtein-0.21.1.tar.gz", hash = "sha256:2e4fc4522f9bf73c6ab4cedec834783999b247312ec9e3d1435a5424ad5bc908"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
rapidfuzz = ">=2.3.0,<4.0.0"
|
||||
|
||||
[[package]]
|
||||
name = "loguru"
|
||||
version = "0.7.0"
|
||||
@@ -2085,6 +2214,107 @@ files = [
|
||||
{file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rapidfuzz"
|
||||
version = "2.13.7"
|
||||
description = "rapid fuzzy string matching"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b75dd0928ce8e216f88660ab3d5c5ffe990f4dd682fd1709dba29d5dafdde6de"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:24d3fea10680d085fd0a4d76e581bfb2b1074e66e78fd5964d4559e1fcd2a2d4"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8109e0324d21993d5b2d111742bf5958f3516bf8c59f297c5d1cc25a2342eb66"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5f705652360d520c2de52bee11100c92f59b3e3daca308ebb150cbc58aecdad"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7496e8779905b02abc0ab4ba2a848e802ab99a6e20756ffc967a0de4900bd3da"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:24eb6b843492bdc63c79ee4b2f104059b7a2201fef17f25177f585d3be03405a"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:467c1505362823a5af12b10234cb1c4771ccf124c00e3fc9a43696512bd52293"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:53dcae85956853b787c27c1cb06f18bb450e22cf57a4ad3444cf03b8ff31724a"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:46b9b8aa09998bc48dd800854e8d9b74bc534d7922c1d6e1bbf783e7fa6ac29c"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1fbad8fb28d98980f5bff33c7842efef0315d42f0cd59082108482a7e6b61410"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:43fb8cb030f888c3f076d40d428ed5eb4331f5dd6cf1796cfa39c67bf0f0fc1e"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:b6bad92de071cbffa2acd4239c1779f66851b60ffbbda0e4f4e8a2e9b17e7eef"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d00df2e4a81ffa56a6b1ec4d2bc29afdcb7f565e0b8cd3092fece2290c4c7a79"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-win32.whl", hash = "sha256:2c836f0f2d33d4614c3fbaf9a1eb5407c0fe23f8876f47fd15b90f78daa64c34"},
|
||||
{file = "rapidfuzz-2.13.7-cp310-cp310-win_amd64.whl", hash = "sha256:c36fd260084bb636b9400bb92016c6bd81fd80e59ed47f2466f85eda1fc9f782"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b34e8c0e492949ecdd5da46a1cfc856a342e2f0389b379b1a45a3cdcd3176a6e"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:875d51b3497439a72e2d76183e1cb5468f3f979ab2ddfc1d1f7dde3b1ecfb42f"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ae33a72336059213996fe4baca4e0e4860913905c2efb7c991eab33b95a98a0a"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5585189b3d90d81ccd62d4f18530d5ac8972021f0aaaa1ffc6af387ff1dce75"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42085d4b154a8232767de8296ac39c8af5bccee6b823b0507de35f51c9cbc2d7"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:585206112c294e335d84de5d5f179c0f932837752d7420e3de21db7fdc476278"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f891b98f8bc6c9d521785816085e9657212621e93f223917fb8e32f318b2957e"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:08590905a95ccfa43f4df353dcc5d28c15d70664299c64abcad8721d89adce4f"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b5dd713a1734574c2850c566ac4286594bacbc2d60b9170b795bee4b68656625"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:988f8f6abfba7ee79449f8b50687c174733b079521c3cc121d65ad2d38831846"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:b3210869161a864f3831635bb13d24f4708c0aa7208ef5baac1ac4d46e9b4208"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:f6fe570e20e293eb50491ae14ddeef71a6a7e5f59d7e791393ffa99b13f1f8c2"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6120f2995f5154057454c5de99d86b4ef3b38397899b5da1265467e8980b2f60"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-win32.whl", hash = "sha256:b20141fa6cee041917801de0bab503447196d372d4c7ee9a03721b0a8edf5337"},
|
||||
{file = "rapidfuzz-2.13.7-cp311-cp311-win_amd64.whl", hash = "sha256:ec55a81ac2b0f41b8d6fb29aad16e55417036c7563bad5568686931aa4ff08f7"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:7d005e058d86f2a968a8d28ca6f2052fab1f124a39035aa0523261d6baf21e1f"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe59a0c21a032024edb0c8e43f5dee5623fef0b65a1e3c1281836d9ce199af3b"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cdfc04f7647c29fb48da7a04082c34cdb16f878d3c6d098d62d5715c0ad3000c"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:68a89bb06d5a331511961f4d3fa7606f8e21237467ba9997cae6f67a1c2c2b9e"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:effe182767d102cb65dfbbf74192237dbd22d4191928d59415aa7d7c861d8c88"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25b4cedf2aa19fb7212894ce5f5219010cce611b60350e9a0a4d492122e7b351"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:3a9bd02e1679c0fd2ecf69b72d0652dbe2a9844eaf04a36ddf4adfbd70010e95"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:5e2b3d020219baa75f82a4e24b7c8adcb598c62f0e54e763c39361a9e5bad510"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:cf62dacb3f9234f3fddd74e178e6d25c68f2067fde765f1d95f87b1381248f58"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:fa263135b892686e11d5b84f6a1892523123a00b7e5882eff4fbdabb38667347"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:fa4c598ed77f74ec973247ca776341200b0f93ec3883e34c222907ce72cb92a4"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-win32.whl", hash = "sha256:c2523f8180ebd9796c18d809e9a19075a1060b1a170fde3799e83db940c1b6d5"},
|
||||
{file = "rapidfuzz-2.13.7-cp37-cp37m-win_amd64.whl", hash = "sha256:5ada0a14c67452358c1ee52ad14b80517a87b944897aaec3e875279371a9cb96"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ca8a23097c1f50e0fdb4de9e427537ca122a18df2eead06ed39c3a0bef6d9d3a"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9be02162af0376d64b840f2fc8ee3366794fc149f1e06d095a6a1d42447d97c5"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:af4f7c3c904ca709493eb66ca9080b44190c38e9ecb3b48b96d38825d5672559"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f50d1227e6e2a0e3ae1fb1c9a2e1c59577d3051af72c7cab2bcc430cb5e18da"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c71d9d512b76f05fa00282227c2ae884abb60e09f08b5ca3132b7e7431ac7f0d"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b52ac2626945cd21a2487aeefed794c14ee31514c8ae69b7599170418211e6f6"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca00fafd2756bc9649bf80f1cf72c647dce38635f0695d7ce804bc0f759aa756"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d248a109699ce9992304e79c1f8735c82cc4c1386cd8e27027329c0549f248a2"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:c88adbcb933f6b8612f6c593384bf824e562bb35fc8a0f55fac690ab5b3486e5"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c8601a66fbfc0052bb7860d2eacd303fcde3c14e87fdde409eceff516d659e77"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:27be9c63215d302ede7d654142a2e21f0d34ea6acba512a4ae4cfd52bbaa5b59"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:3dcffe1f3cbda0dc32133a2ae2255526561ca594f15f9644384549037b355245"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8450d15f7765482e86ef9be2ad1a05683cd826f59ad236ef7b9fb606464a56aa"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-win32.whl", hash = "sha256:460853983ab88f873173e27cc601c5276d469388e6ad6e08c4fd57b2a86f1064"},
|
||||
{file = "rapidfuzz-2.13.7-cp38-cp38-win_amd64.whl", hash = "sha256:424f82c35dbe4f83bdc3b490d7d696a1dc6423b3d911460f5493b7ffae999fd2"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c3fbe449d869ea4d0909fc9d862007fb39a584fb0b73349a6aab336f0d90eaed"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:16080c05a63d6042643ae9b6cfec1aefd3e61cef53d0abe0df3069b9d4b72077"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:dbcf5371ea704759fcce772c66a07647751d1f5dbdec7818331c9b31ae996c77"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:114810491efb25464016fd554fdf1e20d390309cecef62587494fc474d4b926f"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:99a84ab9ac9a823e7e93b4414f86344052a5f3e23b23aa365cda01393ad895bd"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:81642a24798851b118f82884205fc1bd9ff70b655c04018c467824b6ecc1fabc"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3741cb0bf9794783028e8b0cf23dab917fa5e37a6093b94c4c2f805f8e36b9f"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:759a3361711586a29bc753d3d1bdb862983bd9b9f37fbd7f6216c24f7c972554"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1333fb3d603d6b1040e365dca4892ba72c7e896df77a54eae27dc07db90906e3"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:916bc2e6cf492c77ad6deb7bcd088f0ce9c607aaeabc543edeb703e1fbc43e31"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:23524635840500ce6f4d25005c9529a97621689c85d2f727c52eed1782839a6a"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:ebe303cd9839af69dd1f7942acaa80b1ba90bacef2e7ded9347fbed4f1654672"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:fe56659ccadbee97908132135de4b875543353351e0c92e736b7c57aee298b5a"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-win32.whl", hash = "sha256:3f11a7eff7bc6301cd6a5d43f309e22a815af07e1f08eeb2182892fca04c86cb"},
|
||||
{file = "rapidfuzz-2.13.7-cp39-cp39-win_amd64.whl", hash = "sha256:e8914dad106dacb0775718e54bf15e528055c4e92fb2677842996f2d52da5069"},
|
||||
{file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f7930adf84301797c3f09c94b9c5a9ed90a9e8b8ed19b41d2384937e0f9f5bd"},
|
||||
{file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c31022d9970177f6affc6d5dd757ed22e44a10890212032fabab903fdee3bfe7"},
|
||||
{file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f42b82f268689f429def9ecfb86fa65ceea0eaf3fed408b570fe113311bf5ce7"},
|
||||
{file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b477b43ced896301665183a5e0faec0f5aea2373005648da8bdcb3c4b73f280"},
|
||||
{file = "rapidfuzz-2.13.7-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:d63def9bbc6b35aef4d76dc740301a4185867e8870cbb8719ec9de672212fca8"},
|
||||
{file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c66546e30addb04a16cd864f10f5821272a1bfe6462ee5605613b4f1cb6f7b48"},
|
||||
{file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f799d1d6c33d81e983d3682571cc7d993ae7ff772c19b3aabb767039c33f6d1e"},
|
||||
{file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d82f20c0060ffdaadaf642b88ab0aa52365b56dffae812e188e5bdb998043588"},
|
||||
{file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:042644133244bfa7b20de635d500eb9f46af7097f3d90b1724f94866f17cb55e"},
|
||||
{file = "rapidfuzz-2.13.7-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:75c45dcd595f8178412367e302fd022860ea025dc4a78b197b35428081ed33d5"},
|
||||
{file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:3d8b081988d0a49c486e4e845a547565fee7c6e7ad8be57ff29c3d7c14c6894c"},
|
||||
{file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16ffad751f43ab61001187b3fb4a9447ec2d1aedeff7c5bac86d3b95f9980cc3"},
|
||||
{file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:020858dd89b60ce38811cd6e37875c4c3c8d7fcd8bc20a0ad2ed1f464b34dc4e"},
|
||||
{file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cda1e2f66bb4ba7261a0f4c2d052d5d909798fca557cbff68f8a79a87d66a18f"},
|
||||
{file = "rapidfuzz-2.13.7-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b6389c50d8d214c9cd11a77f6d501529cb23279a9c9cafe519a3a4b503b5f72a"},
|
||||
{file = "rapidfuzz-2.13.7.tar.gz", hash = "sha256:8d3e252d4127c79b4d7c2ae47271636cbaca905c8bb46d80c7930ab906cf4b5c"},
|
||||
]
|
||||
|
||||
[package.extras]
|
||||
full = ["numpy"]
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
version = "2.31.0"
|
||||
@@ -2337,13 +2567,13 @@ testing = ["black (==22.3)", "datasets", "numpy", "pytest", "requests"]
|
||||
|
||||
[[package]]
|
||||
name = "tqdm"
|
||||
version = "4.65.1"
|
||||
version = "4.66.0"
|
||||
description = "Fast, Extensible Progress Meter"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
files = [
|
||||
{file = "tqdm-4.65.1-py3-none-any.whl", hash = "sha256:16181c62ad2c6f8f6f29876e66322faad1c7fd3cc70aa9cc25ff63e50d1da031"},
|
||||
{file = "tqdm-4.65.1.tar.gz", hash = "sha256:2cb0075cc5269f8edac40bdeb757cc36ab5b6648caf014822b67e1a49fba141d"},
|
||||
{file = "tqdm-4.66.0-py3-none-any.whl", hash = "sha256:39d459c7140b7890174e69d4d68d6291bc774a55b4bc5d93c0b760798ac5a03e"},
|
||||
{file = "tqdm-4.66.0.tar.gz", hash = "sha256:cc6e7e52202d894e66632c5c8a9330bd0e3ff35d2965c93ca832114a3d865362"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
@@ -2766,4 +2996,4 @@ multidict = ">=4.0"
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.11"
|
||||
content-hash = "75afc46634677cd9afdf2ae66b320a8eaaa36d360d0ba187e5974b90810df44f"
|
||||
content-hash = "c9924049dacf7310590416f096f5b20f6ed905d8a50edf5e8afcf2c28b70799f"
|
||||
|
||||
@@ -46,6 +46,13 @@ pytest-httpx = "^0.23.1"
|
||||
[tool.poetry.group.aws.dependencies]
|
||||
aioboto3 = "^11.2.0"
|
||||
|
||||
|
||||
[tool.poetry.group.evaluation.dependencies]
|
||||
jiwer = "^3.0.2"
|
||||
levenshtein = "^0.21.1"
|
||||
tqdm = "^4.66.0"
|
||||
pydantic = "^2.1.1"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
||||
Reference in New Issue
Block a user