structflo-ner 0.4.0__tar.gz → 0.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. structflo_ner-0.4.0/README.md → structflo_ner-0.6.0/PKG-INFO +27 -0
  2. structflo_ner-0.4.0/PKG-INFO → structflo_ner-0.6.0/README.md +14 -13
  3. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/notebooks/01_quickstart.ipynb +417 -87
  4. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/pyproject.toml +1 -1
  5. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/__init__.py +1 -1
  6. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/_entities.py +5 -1
  7. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/_examples.py +183 -5
  8. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/_prompts.py +50 -15
  9. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/extractor.py +4 -2
  10. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/README.md +35 -13
  11. structflo_ner-0.6.0/structflo/ner/fast/_loader.py +196 -0
  12. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/_matcher.py +21 -10
  13. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/extractor.py +6 -8
  14. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/tests/test_extractor.py +15 -1
  15. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/tests/test_fast.py +108 -17
  16. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/uv.lock +17 -17
  17. structflo_ner-0.4.0/.claude/settings.local.json +0 -13
  18. structflo_ner-0.4.0/structflo/ner/fast/_loader.py +0 -116
  19. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/.github/workflows/ci.yml +0 -0
  20. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/.github/workflows/publish.yml +0 -0
  21. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/.gitignore +0 -0
  22. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/Makefile +0 -0
  23. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/coverage.xml +0 -0
  24. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/fast-viz.png +0 -0
  25. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/local-gen-pandas.png +0 -0
  26. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/local-gen-viz.png +0 -0
  27. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/local-tb-viz.png +0 -0
  28. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/ner_visualization.gif +0 -0
  29. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/images/struct-flo-ner.png +0 -0
  30. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/notebooks/02_fast_ner.ipynb +0 -0
  31. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/_display.py +0 -0
  32. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/_mapping.py +0 -0
  33. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/__init__.py +0 -0
  34. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/_normalize.py +0 -0
  35. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/accession_number.yml +0 -0
  36. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/compound_name.yml +0 -0
  37. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/disease.yml +0 -0
  38. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/functional_category.yml +0 -0
  39. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/gene_name.yml +0 -0
  40. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/product.yml +0 -0
  41. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/screening_method.yml +0 -0
  42. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/strain.yml +0 -0
  43. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/fast/gazetteers/target.yml +0 -0
  44. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/structflo/ner/profiles.py +0 -0
  45. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/tests/__init__.py +0 -0
  46. {structflo_ner-0.4.0 → structflo_ner-0.6.0}/tests/test_entities.py +0 -0
@@ -1,3 +1,16 @@
1
+ Metadata-Version: 2.5
2
+ Name: structflo-ner
3
+ Version: 0.6.0
4
+ Summary: Drug discovery NER wrapper around LangExtract — zero-config entity extraction for chemistry and biology.
5
+ License: Apache-2.0
6
+ Requires-Python: >=3.10
7
+ Requires-Dist: langextract>=1.6.0
8
+ Requires-Dist: pyyaml>=6.0
9
+ Requires-Dist: rapidfuzz>=3.0
10
+ Provides-Extra: dataframe
11
+ Requires-Dist: pandas>=1.5; extra == 'dataframe'
12
+ Description-Content-Type: text/markdown
13
+
1
14
 
2
15
  <h1 align="center">structflo.ner</h1>
3
16
  <p align="center">
@@ -334,6 +347,20 @@ df = result.to_dataframe()
334
347
  result.to_dict()
335
348
  ```
336
349
 
350
+ Each bioactivity carries its measurement in `attributes`:
351
+
352
+ | Attribute | Example | Meaning |
353
+ | --------------- | --------------------------- | ---------------------------------------------------------- |
354
+ | `value` | `>20.0` | number as reported, qualifier kept |
355
+ | `unit` | `µM` | unit as written |
356
+ | `assay_type` | `CC50` | the endpoint (IC50, MIC90, GI50, ED90, ...) |
357
+ | `assay` | `HepG2 MTT` | assay, cell line or read-out the value was measured in |
358
+ | `compound_name` | `8t` | compound the value belongs to |
359
+ | `strain` | `H37Rv` | organism or strain (`TB` profile only) |
360
+
361
+ An attribute the text does not state comes back as the string `"None"` with
362
+ providers that enforce a strict schema (OpenAI), or is absent otherwise.
363
+
337
364
 
338
365
  ## Notebooks
339
366
 
@@ -1,16 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: structflo-ner
3
- Version: 0.4.0
4
- Summary: Drug discovery NER wrapper around LangExtract — zero-config entity extraction for chemistry and biology.
5
- License: Apache-2.0
6
- Requires-Python: >=3.10
7
- Requires-Dist: langextract>=1.1.1
8
- Requires-Dist: pyyaml>=6.0
9
- Requires-Dist: rapidfuzz>=3.0
10
- Provides-Extra: dataframe
11
- Requires-Dist: pandas>=1.5; extra == 'dataframe'
12
- Description-Content-Type: text/markdown
13
-
14
1
 
15
2
  <h1 align="center">structflo.ner</h1>
16
3
  <p align="center">
@@ -347,6 +334,20 @@ df = result.to_dataframe()
347
334
  result.to_dict()
348
335
  ```
349
336
 
337
+ Each bioactivity carries its measurement in `attributes`:
338
+
339
+ | Attribute | Example | Meaning |
340
+ | --------------- | --------------------------- | ---------------------------------------------------------- |
341
+ | `value` | `>20.0` | number as reported, qualifier kept |
342
+ | `unit` | `µM` | unit as written |
343
+ | `assay_type` | `CC50` | the endpoint (IC50, MIC90, GI50, ED90, ...) |
344
+ | `assay` | `HepG2 MTT` | assay, cell line or read-out the value was measured in |
345
+ | `compound_name` | `8t` | compound the value belongs to |
346
+ | `strain` | `H37Rv` | organism or strain (`TB` profile only) |
347
+
348
+ An attribute the text does not state comes back as the string `"None"` with
349
+ providers that enforce a strict schema (OpenAI), or is absent otherwise.
350
+
350
351
 
351
352
  ## Notebooks
352
353