All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
-
updated template to https://github.com/robert-koch-institut/mex-template/commit/192830
-
updated template to https://github.com/robert-koch-institut/mex-template/commit/11612b
- BREAKING: Model update v5.0: add optional fields to entity type models
- updated template to https://github.com/robert-koch-institut/mex-template/commit/52887e
- added function
search_preview_itemsin backend_api connector for advanced reference filtering
- BREAKING: transform_ldap_person functions expect ID now instead of whole organisation
- updated template to https://github.com/robert-koch-institut/mex-template/commit/1d816d
- fix fuzzing tests
- BREAKING: Added workflow rule to all rule sets
- it defines forbidden targets for publishing of merged items
- This change affects what kind of data is stored in database and might therefore have unexpected side effects
- If your repo depends on mex-common AND on mex-backend, make sure to update both to versions that include the workflow rule
- new "is_item_publishable" function
- updated template to https://github.com/robert-koch-institut/mex-template/commit/dd987e
- Post endpoint for preview_merged_item
- add get_preview_item by stableTargetId to BackendAPIConnector
- BREAKING add configuration parameter
ops_dir. Settings are now read fromops_dir/config/.envandops_dir/config/secrets/*. Make sure your environment variableMEX_OPS_DIRpoints to your local mex-ops directory. For dependent repositories: change the type of your Settings parameters that point to migrated files (e.g. certificates) toOpsPath.
- updated template to https://github.com/robert-koch-institut/mex-template/commit/43f715
- updated template to https://github.com/robert-koch-institut/mex-template/commit/172aac
- updated template to https://github.com/robert-koch-institut/mex-template/commit/491e2d
- fuzzing test for PreviewItem generation using mex-artificial
- verify ldap server certificate
- adding multiple OptionalValues via an AdditiveRule no longer breaks creation of PreviewItem
- LDAPConnector is now fully paginated
- fetching ldap items is cached
- updated template to https://github.com/robert-koch-institut/mex-template/commit/0c16a6
- expand ALL_REFERENCE_FIELD_NAMES to include additive reference fields (supersededBy)
- expose nested level implementations on the higher level module
- added additional model lookups
- RULE_MODEL_CLASSES_BY_TYPE_BY_NAME
- EXTRACTED_AND_RULE_MODEL_CLASSES_BY_NAME
- SEARCHABLE_FIELDS
- SEARCHABLE_CLASSES
- NESTED_ENTITY_TYPES_BY_FIELD_BY_CLASS_NAME
- NESTED_ENTITY_TYPES_BY_CLASS_NAME
- REFERENCED_ENTITY_TYPES_BY_FIELD_BY_CLASS_NAME
- STRINGIFIED_TYPES_BY_FIELD_BY_CLASS_NAME
- REFERENCED_ENTITY_TYPES_BY_CLASS_NAME
- REFERENCED_FIELD_REFERENCING_TUPLES
- INBOUND_REFERENCE_FIELDS_BY_CLASS_NAME
- ALL_REFERENCE_FIELD_NAMES
- added utils
camelcase_to_titleandclean_dict - added missing methods to backend_api connector
- system_status
- flush_graph
- delete_rule_set
- delete_merged_item
- match_item
- add mex-editor identifiers: identifier, stableTargetId and identifierInPrimarySource
- explicit export fo mex-editor identifiers
- add mex-editor identifiers: identifier, stableTargetId and identifierInPrimarySource
- replace pandas Series with plain dict in parse_csv
- support for python 3.14
- settings classes log table representation in model validation hook
- PathWrapper can be compared to regular pathlib Path objects
- updated template to https://github.com/robert-koch-institut/mex-template/commit/81bc5b
- deprecated
settings_clskeyword forentrypointdecorator
- removed all cli arguments for entrypoints, except
--pdb
- added LDAPBackendAPIConnector to use 'merged-person-from-login'
- updated template to https://github.com/robert-koch-institut/mex-template/commit/33ca3a
- updated mex-model to 4.9.1
- support for python 3.11 - 3.13
- updated template to https://github.com/robert-koch-institut/mex-template/commit/ad26e4
- switch package manager from pdm to uv
transform_ldap_person_and_unit_ids_to_extracted_personfor extractors ldap convenience function
- added field descriptions according to mex.model
- added two new string helper functions
split_to_camelandcamel_to_split - added merged model verification to
test_model_schemas - add 'supersededBy' to merged and preventive items, and to additive rules
- update mex-model to version 4.8 featuring translated entity types and repo maintenance
- updated template to https://github.com/robert-koch-institut/mex-template/commit/2039340
- updated template to https://github.com/robert-koch-institut/mex-template/commit/c5ff3e
- BREAKING: expects organization ID instead of organization in:
- transform_organigram_unit_to_extracted_organizational_unit
- transform_organigram_units_to_organizational_units
- update mex-model to version 4.7 where "supersededBy" is added to merged items
- use
model_title_generatorinstead of hardcoding model titles - move
hadPrimarySourceandidentifierInPrimarySourcefrom concrete mapping models to the base mapping class - update mex-model to version 4.6 where extracted and merged schemas are split
- update
test_model_schemasto be more readable and remove unnecessary special cases - move settings for ldap search base
- add
merged_person_from_loginmethod to BackendApiConnector - RestrictedTextLanguage allowing only EN or DE if confidence >=0.75
- updated template to https://github.com/robert-koch-institut/mex-template/commit/7c3e75
- detect_language does not support FR, RU or ES anymore.
- updated template to https://github.com/robert-koch-institut/mex-template/commit/a67c71
- updated template to https://github.com/robert-koch-institut/mex-template/commit/6009e2
- organigram lookup now returns lists of units to support organizational units sharing same details like email
- add organigram convenience function to get extracted units
- updated template to https://github.com/robert-koch-institut/mex-template/commit/3c389d
- fix TemporalEntity equality check
- fix DistributionRuleSetResponse entity type
- update mex-model dependency to 4.4
- move
topological_sortfrom extractors to common - better align mex.common.models with mex-model
- update mex-model dependency to 4.3
- parse_csv now summarizes error logs in batches with amount of successful validations.
- BREAKING: expects primary source id instead of primary source in:
- get_merged_ids_by_employee_ids
- get_merged_ids_by_query_string
- transform_ldap_persons_to_extracted_persons
- transform_ldap_functional_accounts_to_extracted_contact_points
- transform_ldap_persons_with_query_to_extracted_persons
- transform_ldap_person_to_extracted_person
- transform_ldap_functional_account_to_extracted_contact_point
- transform_any_ldap_actor_to_extracted_persons_or_contact_points
- transform_orcid_person_to_mex_person
- get_extracted_organizational_unit_with_parents
- transform_organigram_unit_to_extracted_organizational_unit
- transform_organigram_units_to_organizational_units
- transform_wikidata_organizations_to_extracted_organizations
- transform_wikidata_organization_to_extracted_organization
- BREAKING: returns primary source id dict instead of primary source dict in extracted_primary_sources
- BREAKING: email changed typing to annotated str for ContactPoint, OrgUnit and Person
- BREAKING: get_primary_sources_by_name
- BREAKING: EMAIL_PATTERN and Email removed from mex.common.types
- BREAKING: EMAIL_FIELDS_BY_CLASS_NAME removed from mex.common.fields
- updated pydantic to 2.12.2 and pydantic settings to 2.11
- Settings validator to prevent attributes that inherit from BaseSettings
- don't require env settings for ldap and wiki tests
- update mex-model to 4.2.1
- bumped pytz to newest version >=2025
- BREAKING: add RKI organization as affiliation to ldap persons
- fixed temporal entity tests for newest pytz version
- added fr, es and ru as selectable languages to Link and Text
- make LDAPConnector filter options snake_case and keyword-only
- removed unused filter options from LDAPConnector
- fix ldap functional account and user search
- fix error for getting unknown wiki item
- add connector function and transformer to get persons and contact points in one go
- add
deprecatedutil to simplify renaming of functions - add
REQUIRED_FIELDS_BY_CLASS_NAMEandTEMPORAL_PRECISIONS_BY_FIELD_BY_CLASS_NAMES - add models for
StatusandVersionStatus
- change BackendApiConnector.search_person_in_ldap to allow contact points
- deprecated multiple ldap functions to be replaced by more precise naming
- remove redundant function
get_ldap_personsto use connector directly instead - remove unused functions
get_merged_ids_by_emailandget_ldap_fields
- add helper function to find organigram unit descendants
- have ndjson sink handle special characters correctly
- add
ensure_listutility function
- BREAKING: change the behavior of merge previews to include blocked values
- add
Validationenum tomex.common.types
- BREAKING: change validation argument of
create_merged_itemhelper - BREAKING: change model hash and string computation to faster black2/pickle
- BREAKING: remove unused
BaseModel.checksummethod
- add identifier filter to merged and preview fetch endpoints in BackendApiConnector
- add
fetch_all_merged_itemsandget_extracted_itemmethods to BackendApiConnector
- BREAKING: replace hadPrimarySource with reference field filter in BackendApiConnector
- BREAKING: BackendApiConnector fetch endpoint methods now expect keyword arguments
- bump cookiecutter template to e886ec
- use default wiki label should there be neither a german nor english label
- BREAKING: add RKI organization as unitOf to organigram units
- fix ldap connection resetting
- moved
contains_any_typesover from mex-backend
- ensure extracted items are merged in predictable way
- improve a batch of doc-strings with args, raises and return sections
- fix ldap error if ldap connector is >1h old
- running github release action publishes to pypi
- use mex-model from pypi instead of github
- bump mex-model dependency
- get vocabulary model examples dynamically from models
- improve logging for backend API sink connector
- fix response type of
BackendApiConnector.preview_merged_itemto bePreviewModel
- add proportional backoff to too_many_requests responses and configure minimum time
- move hash function from ExtractedData to BaseModel
- added fullname attribute to transforming orcid person to mex person
- removed
BaseEntityclass to reduce inheritance hierarchy - remove http retry on forbidden responses
- added MEX_BACKEND_API_PARALLELIZATION and MEX_BACKEND_API_CHUNK_SIZE settings
- added support for sending batches of data to the backend in parallel
- bump cookiecutter template to ed5deb
- update pyarrow and click dependencies
- update mex-model to 3.6.1
- update mex-model to 3.5.7
- fix ldap connector method signatures
- added
BackendApiConnectormethods to create and update rule-sets - added
BackendApiConnectormethods to search in wiki, ldap and orcid - added
BackendApiConnectormethods to fetch and assign identities - added
limitparameter to ldap connector and helper functions - added pre-configured type adapters to all models with an
entityType - added
MEX_LDAP_SEARCH_BASEsetting to configure the search domain - added
metricsmethod to connectors to collect cache hits and misses - added
get_extracted_organizational_unit_with_parentsorganigram helper - added
transform_organigram_unit_to_extracted_organizational_unittransformer
- BREAKING: move MergedModel and RuleSetResponse type adapters to models module
- de-coupled BackendApiIdentityProvider from BackendApiConnector
- moved memory and backend identity provider registration to package init file
- BREAKING: convert ldap connector and related functions from generator to list returns
- reconfigure all cached functions to have a
maxsizesetting - moved
get_alias_lookup,get_list_field_namesandget_field_names_allowing_nonefromBaseModelclass to utils module - BREAKING: convert organigram functions from generator to list returns
- BREAKING: convert primary-source functions from generator to list return
- BREAKING: moved
split_to_capsfrom types to transform module - BREAKING: moved
normalizefrom utils to transform module - BREAKING: renamed
get_persons_by_nametoget_ldap_persons
- BREAKING: remove return value from
BackendApiConnector.ingest - BREAKING: remove unused
LDAPConnector.get_unitandget_unitsmethods - BREAKING: remove
get_count_of_found_persons_by_nameto avoid duplicate queries - BREAKING: removed
member_ofvalidation for ldap persons - BREAKING: removed
get_all_extracted_primary_sourceshelper
- Also allow raw request of HTTPConnector
- increase read timeout limit for BackendApiSink
- log model info on sink errors
- move ingest timeout configuration from BackendAPIConnector to BackendApiSink
- wrap read time out errors of http connector in a custom timed error
- add proportional backoff to http connector: the longer it took, the longer we chill
- use watch decorator on sinks to only log once every 1000 write ops
- add pagination to orcid connector search method
- add caching to orcid single item lookup
- add support for multiple emails to orcid transform
- BREAKING: dissolve aux-extractor model folders into single files
- BREAKING: clean-up orcid connector method and extract function names
- BREAKING: require orcid primary source as parameter to transform function
- make orcid family and given names optional to validate all data
- rename private _get_organization_details to public get_wikidata_organization
- drop stale DataType type
- remove unused LDAPConnector.PAGE_SIZE
- BREAKING: removed unused MEX_WIKI_QUERY_SERVICE_URL setting
- BREAKING: removed unused WikidataQueryServiceConnector class
- BREAKING: removed unused search_organization_by_label extract function
- BREAKING: removed unused get_count_of_found_organizations_by_label extract function
- BREAKING: removed unused search_organizations_by_label extract function
- BREAKING: removed unused get_extracted_organization_from_wikidata helper function
- ALL_TYPES_BY_FIELDS_BY_CLASS_NAMES and VOCABULARIES_BY_FIELDS_BY_CLASS_NAMES lookups
- update ruff and apply TC006 fixes
- extract method for orcid can now obtain multiple results (orcid records)
- BREAKING: wrap function around watch decorator accepting log_interval parameter
- increase parse_csv default chunksize to 10000 and log chunks instead of rows
- reduce chunk size for backend api sink to avoid timeouts
- stop stringifying backend identity provider url parameters
- remove unsafe pytest import from testing plugin
- BREAKING: mex-model to 3.5.6: make doi pattern more lenient
- BREAKING: mex-model to 3.5.5: update patterns and examples for URL fields
- BREAKING: filter for had_primary_source to backend api connector
- temporarily pin pydantic settings version to bypass error in settings update.
- Connector class for retrieving ORCID data by ID or name
- methods for extracting data from orcid
- methods to transform from OrcidPerson to mex person
- model class for orcid data
- unit tests for orcid connector
- expand the pattern for DOI Urls as these can also contain lowercase letters
- add entry for
s3to sink settings enum
- add
AnyMergedModelto the allowed types forSink.loadmethods - but let BackendApiSink throw an error, when merged items are loaded
- make local typevars private and give them speaking names
- BREAKING: move ItemsContainer and PaginatedItemsContainer to mex.common.models
- BREAKING: replace post_extracted_items with ingest and allow AnyRuleSetResponses
- allow AnyRuleSetResponses as arguments to sinks
- BREAKING: sinks now yield the models they loaded, instead of just their identifiers
- update mex-model to 3.5.1
- fix regex pattern for GndIdStr in organization models
- do not wrap field types in
setValuesin mapping rules in another list
- reduce Filter classes to a single list field of
FilterFielditems
- new (partially generic) classes for defining Mapping and Filter fields and rules
- BREAKING: replaced dynamic Mapping and Filter classes with static ones
- use FILTER_MODEL_CLASSES_BY_NAME instead of FILTER_MODEL_BY_EXTRACTED_CLASS_NAME
- use MAPPING_MODEL_CLASSES_BY_NAME instead of MAPPING_MODEL_BY_EXTRACTED_CLASS_NAME
- add a sink registry with
register_sinkandget_sinkfunctions - add a multi-sink implementation, akin to
mex.extractors.load
- BREAKING: convert post_to_backend_api to BackendApiSink
- BREAKING: convert write_ndjson to NdjsonSink
- backend and ndjson sinks log progress only in batches
- increase timeout and decrease chunk size for backend API sink
- port backend identity provider implementation from editor/extractors to common
- allow backend and graph as identity provider setting to simplify setting subclasses, even though graph is not implemented in mex-common
- BREAKING: make backend api connector response models generic, to keep DRY
- skip None values when merging extracted and rule items
- merging logic to mex-common
- BREAKING: add nested models (Text, Link) to all lookups in
mex.common.fields
- BREAKING: move
GenericFieldInfofrommodels.base.field_infotoutils - BREAKING: move
get_all_fieldsfromBaseModeltoutilsto support all base models
- BREAKING: change type of distribution.title to an array of texts
- updated ldap search from name and familyname to one single attribute "displayname"
- add preview models for merged items without cardinality validation
- BREAKING: preview models are now part of all
mex.common.fieldslookups - add
BackendApiConnector.fetch_preview_itemsfor fetching previews
- stop using
ExtractedData, useAnyExtractedModelinstead - stop using
MergedItem, useAnyMergedModelinstead - stop using
AdditiveRule, useAnyAdditiveRuleinstead - stop using
SubtractiveRule, useAnySubtractiveRuleinstead - stop using
PreventiveRule, useAnyPreventiveRuleinstead - stop using
BaseEntity, use a concrete union instead
- removed deprecated
BulkInsertResponseas alias forIdentifiersResponse - removed unused module export of
mex.common.models.generate_entity_filter_schema - removed unused module export of
mex.common.models.generate_mapping_schema - drop export
models.ExtractedPrimarySourceIdentifier, import fromtypesinstead - drop export
models.MergedPrimarySourceIdentifier, import fromtypesinstead
- add vocabulary and temporal unions and lookups to
mex.common.types - add
mex.common.fieldswith field type by class name lookups
- wikidata helper now optionally accepts wikidata primary source
- set default empty rules to all of the rule-set models
- pin pydantic to sub 2.10 (for now) because of breaking changes
- switch HTTP method for preview endpoint to
POST - add optional values to variadic values for distribution models
- make
endpointDescriptionoptional for variadic access platform models
- organigram extraction checks for duplicate emails/labels in different organigram units
- upgrade mex-model dependency to version 3.2
- upgrade mex-model dependency to version 3.1
- fix typo in
repositoryURLof bibliographic resources - make identifier and stableTargetId of ExtractedBibliographicResource computed fields
- added new consent and bibliography reference models and vocabs
- added doi field to resource models
- helper function for primary source look up
- upgrade mex-model dependency to version 3
- make ruff linter config opt-out, instead of opt-in
- make instances of extracted data hashable
- BREAKING: Wikidata convenience function refactored and renamed to 'helper'
- wikidata helper function split between mex-common and mex-extractors
- code de-duplication: fixture extracted_primary_sources uses function-part of helper
- split up YearMonth and Year temporal types and improved patterns
- applied all changes to model fields according to model v3
- update LOINC pattern
- fix temporal entity schemas
- add pattern constants for vocabs, emails, urls and ids to types module
- add regex pattern to json schema of identifier fields
- automatically add examples and useScheme to json schema of enum fields
- BREAKING: use
identifierinstead ofstableTargetIdto get merged item from backend - ensure identifier unions are typed to generic
Identifierinstead of the first match to signal that we don't actually know which of the union types is correct - unify pydantic schema configuration for all types
- consistently parse emails, identifiers and temporals in models to their type, not str
- consistently serialize emails, ids and temporals in models to str, not their type
- make instances of Link type hashable, to harmonize them with Text models
- drop manual examples from enum fields, because they are autogenerated now
- BREAKING: remove
MEX_ID_PATTERNfrom types, in favor ofIDENTIFIER_PATTERN - BREAKING: make public
MEX_ID_ALPHABETconstant from identifier module private - BREAKING: remove
__str__methods from Text and Link classes - BREAKING: drop support for parsing UUIDs as Identifiers, this was unused
- BREAKING: drop support for parsing Links from markdown syntax, this was unused
- BREAKING: remove pydantic1-style
validatemethods from all type models - BREAKING:
BackendApiConnector.post_modelsin favor ofpost_extracted_items
- added methods for extracting persons by name or ID from ldap
contains_only_typesto check if fields are annotated as desiredgroup_fields_by_class_nameutility to simplify filtered model/field lookups- new parameters to
get_inner_typesto customize what to unpack
- pin pytz to 2024.1, as stopgap for MX-1703
- added
BackendApiConnectormethods to cover all current (and near future) endpoints:fetch_extracted_items,fetch_merged_items,get_merged_item,preview_merged_itemandget_rule_set - complete the list of exported names in
modelsandtypesmodules
- deprecated
BackendApiConnector.post_modelsin favor ofpost_extracted_items
- containerize section from release pipeline
- added the
rki/mexuser-agent to all requests of the HTTPConnector
- update cruft and loosen up pyproject dependencies
- harmonize signatures/docs of pydantic core/json schema manipulating methods
- fix schema tests not starting with diverging model names in common and mex-model
- fix serialization for temporal entity instances within pydantic models
- wikidata fixtures to pytest plugin: wikidata_organization_raw, wikidata_organization, mocked_wikidata
- convenience function
get_merged_organization_id_by_query_with_extract_transform_and_loadfor getting the stableTargetId of an organization, while transforming and loading the organization using the provided load function - models for rule-set requests and responses along with typing and lookups
- add
BaseTmodels to the exported names ofmex.common.models - add
MEX_ID_PATTERNto the exported names ofmex.common.types
- move all base models and pydantic scaffolding into
mex.common.models.basefor a cleaner structure within the growingmodelsmodule
- HTTP connector backoff for 10 retries on 403 from server
rki/mexuser agent is sent with query requests via wikidata connector
-
changed backend api connector payload to "items"
-
update wikidata search organization request query, with optional language parameter wikidata query search can be enhanced by specifying the language. EN is the default language.
- move log timestamp and coloring into the formatter
mex.common.logging.echois deprecated in favor oflogging.info
- add missing listyness-fix support for computed-fields
- BREAKING: ability to store different settings instances at the same time. Dependent repositories now must bundle all settings in a single class.
- get count of found wikidata organizations
- add validator to base model that verifies computed fields can be set but not altered
- new class hierarchy for identifiers: ExtractedIdentifier and MergedIdentifier
- improve typing for methods using
Self - make local type variables private
- use json instead of pickle to calculate checksum of models
- replace
set_identifiersvalidator with computed fields on each extracted model
- removed custom stringify method on base entities that included the
identifierfield
- fix typing for
__eq__arguments
- extract multiple organizations from wikidata
- update mex-model to version 2.5
- add static class attribute
stemTypeto models, containing an unprefixed entityType - add
AnyRuleModel,RULE_MODEL_CLASSES,RULE_MODEL_CLASSES_BY_NAMEto models - add type aliases
AnyPrimitiveTypeandLiteralStringTypeto types - add new utility function
ensure_postfixfor adding postfixes to strings
- clean-up and unify
mappingandfilterclass generation
- fix memory identity provider seeding
- add classes for Additive, Preventive and Subtractive rules for all entity types
- add types, lists and lookups for all three rule types to
mex.common.models
- move aux-extractor documentation from readme to
__init__to have it in sphinx - move
BaseModelspecific descriptions from class to model to avoid duplication - BREAKING: move
FILTER_MODEL_BY_EXTRACTED_CLASS_NAMEtomex.common.models - BREAKING: move
MAPPING_MODEL_BY_EXTRACTED_CLASS_NAMEtomex.common.models - BREAKING: change
MEX_PRIMARY_SOURCE_IDENTIFIERto end in1, so that it differs fromMEX_PRIMARY_SOURCE_STABLE_TARGET_ID
- isolate settings context before first test
- add
precisionkeyword to TemporalEntity constructor - add transform function for single wikidata organization to extracted organization
- add tests for ldap.extract
- fix ldap.extract.get_merged_ids_by_email
- synchronize changes to fields in
BaseSettingsto all active settings subclasses - added github action for renovatebot
- make memory identity provider deterministic (same input args results in same stableTargetId and Identifier)
- rework
ContextStoreintoSingletonStorewith more intuitive API - phase out ambiguous "context" naming in favor of more descriptive "singleton store"
- rename
SettingsContexttoSETTINGS_STOREand allow multiple active subclasses - rename
ConnectorContexttoCONNECTOR_STOREremoving its context manager functions - replace
reset_connector_context()with more consistentCONNECTOR_STORE.reset()
- removed types
IdentifierT,SettingsType,ConnectorTypein favor oftyping.Self - remove github dependabot configuration
- return only one org from wikidata, if multiple or no org is found then return None
- filter quotation marks (") from requested wikidata label
- port
get_inner_typesfrommex-backendtomex.common.utils
- rename Timestamp class to TemporalEntity
- added subclasses with specific resolution YearMonth, YearMonthDay, YearMonthDayTime
- modernize typing with syntactic sugar
- simplify
BaseModel._get_list_field_namesusingget_inner_types - switch from poetry to pdm
- use vocabulary JSON files from mex-model
- remove vocabulary JSON files
- date and time validation working and harmonized with mex-model
- add
entityTypetype hint toMExModel(nowBaseEntity) - add types for
AnyBaseModel,AnyExtractedModelandAnyMergedModel - create more specific subclasses of
Identifier(for extracted and merged) - expose unions, lists and lookups for
Identifiersubclasses inmex.common.types
- swap
contextvars.ContextVarformex.common.context.ContextStore - move
stableTargetIdproperty from base models to extracted models - update typing of identifiers to specific subclasses
- use
Annotated[..., Field(...)]notation for pydantic field configs - split up
mex.common.models.baseand move outMExModelandJsonSchemaGenerator - rename
MExModeltoBaseEntitywith only type hints an model config - declare
hadPrimarySource,identifierandidentifierInPrimarySourceas frozen
- absorb unused
BaseExtractedDataintoExtractedData - remove
stableTargetIdproperty from merged models - drop support for sinks to accept merged items (now only for extracted data)
- update cruft and dev dependencies
- randomize test order by default
- remove
mex.common.public_apimodule and the correlating sinks - remove
PathWrapper.resolveandPathWrapper.rawmethods
- remove
pytest.markfrom fixture inmex.common.testing.plugin
- update cruft and minor dependencies
- date-time format validation for mapping model generation
- update cruft to apply new workflow trigger config
- update poetry and pre-commit dependencies
- fix mex mapping model name
- pytest plugins for random order and parallelized test execution
- move dynamic mapping model generation from mex-assets
mex.bat testuses random order and xdist plugins by default
- cruft template link
- workflow that syncs main branch to openCoDE
- constant for MEX_PRIMARY_SOURCE_IDENTIFIER
- harmonized boilerplate
- ExtractedData raises proper ValidationError when parsing wrong base type
- add
entityTypefield in all extracted and merged models
- wikidata test
CHANGELOG.mddocumenting notable changes to this project- a template for pull requests
- language french in language vocabulary
- tests for
mex.common.types.PathWrapper - method
is_relativetomex.common.types.PathWrapperto check whether the path is relative
- resolve base paths of work/assets path fields in settings
- nesting of
mex.common.types.PathWrapperon instantiation
- move
SinkandIdentityProvidertomex.common.types
- deprecate
MExModel.get_entity_type, usecls.__name__instead - deprecate
mex.common.models.MODEL_CLASSES[_BY_ENTITY_TYPE], use the more precise lists or dicts likeEXTRACTED_MODEL_CLASSES_BY_NAMEinstead
- use dmypy for pre-commit type checking
- fix previously undetected typing issue
- configure CI linting to install poetry
- update versions