Deduce

Latest version: v3.0.3

Safety actively analyzes 701396 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 3 of 5

2.1.0

Added
- a component for deidentifying BSN-nummers

Changed
- updated dependencies
- by default, deduce now recognizes and tags bsn nummers
- by default, deduce now recognizes all other 7+ digit numbers as identifiers
- improved regular expressions for e-mail address and url matching, with separate tags
- logic for detecting phone numbers (improvements for hyphens, whitespaces, false positive identifiers)
- improved regular expression for age matching
- date detection logic:
- now only recognizes combinations of day, month and year (day/month combinations caused many false positives)
- detects year-month-day format in addition to (day-month-year)
- loading a custom config now only replaces the config options that are explicitly set, using defaults for those not included in the custom config

Deprecated
- backwards compatibility, which was temporary added to transition from v1 to v2

Removed
- a separate patient identifier tag, now superseded by a generic tag
- detection of day/month combinations for dates, as this caused many false positives (e.g. lab values, numeric scores)

Fixed
- annotations can no longer be counted as adjacent when separated by newline or tab (and will thus not be merged)

2.0.3

Fixed
- removed 'decibutus' from list of institutions as it caused many false positives

2.0.2

Changed
- upgraded dependencies, including `markdown-it-py` which had a vulnerability

2.0.1

Not secure
Changed
- upgraded dependencies

2.0.0

Not secure
Added
- introduced new interface for deidentification, using `Deduce()` class
- a separate documentation page, with tutorial and migration guide
- support for python 3.10 and 3.11

Changed
- major refactor that touches pretty much every line of code
- use `docdeid` package for logic
- speedups: now 973% faster
- use lookup sets instead of lookup lists
- refactor tokenizer
- refactor annotators into separate classes, using structured annotations
- guidelines for contributing

Removed
- the `annotate_text` and `deidentify_annotations` functions
- all in-text annotation (under the hood) and associated functions
- support for given names. given names can be added as another first name in the `Person` class.
- support for python 3.7 and 3.8

Fixed
- `<` and `>` are no longer replaced by `(` and `)` respectively
- deduce does not strip text (whitespaces, tabs at beginning/end of text) anymore

1.0.8

Not secure
Added
- warn if there are any structured annotations whose annotated text does not match the original text in the span denoted by the structured annotation

Fixed
- various modifications related to adding or subtracting spaces in annotated texts
- remove the lowercasing of institutions' names
- therefore, all structured annotations have texts matching the original text in the same span

Page 3 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.