- Major BC break: Change concept.concept_id from Integer to String to allow storing concepts and collections with a non-numeric id. Existing instance will need to update their SQL database. Please consult the docs or the README for some help in doing so. (#87)
- Skosprovider_sqlalchemy now depends on SQLAlchemy 1.4 or higher and should be compatible with SQLAlchemy 2. Older versions of SQLAlchemy are no longer supported. (#90)
- Refactored the Skosprovider_sqlalchemy constructor to call the super constructor. (#95)
- Drop support for Python 3.6 and 3.7. Add support for Python 3.11. (#86)
- Drop pyup support. (#85)
- Drop python 2 support (#80)
- Upgrade requirements (#78)
- Add a CITATION.cff file
- Update to the latest skosprovider version and implement the infer_concept_relations attribute. (#53)
- Add the ability to query on matches in line with the latest skosprovider version. (#57)
- Drop the session decorator that was added in 0.4.0 since it did not fix the
issue we wanted it to fix and it added a lot of overhead. A provider should
now be passed a
sqlachemy.orm.session.Sessionat startup, or a callable that returns such a session. (#64)
- Improved performance of getting the concept_scheme by caching it. (#71)
- Make querying a collection with depth=all possible. Before the provider would only provide the direct members of a collection. (#76)
- Drop support for Python 3.4 and 3.5. Add support for Python 3.7 and 3.8. This is also the last version to support Python 2. (#62)
- Update a lot of dependencies.
- Add __str__ implementations to the model classes. (#43)
- Catch linking errors when importing a provider and turn them into log warning. By linking errors we mean cases where one concept has a relation to a non-existing other concept. (#25)
- Allow building as wheel.
- Update to skosprovider 0.6.0
- Minor BC break: A
skosprovider_sqlalchemy.models.Languagethat gets cast to a string, now returns the language’s ID (the IANA language code),as opposed to the language’s description it would previously return.
- Minor BC break: The URI attribute has been made required for a
skosprovider_sqlalchemy.models.ConceptScheme. Before it was optional, but it probably would have caused problems with skosprovider anyway.
- Due to the update to skosprovider 0.6.0, a new field markup, was added to a
skosprovider_sqlalchemy.models.Note. When upgrading from a previous version of skosprovider_sqlalchemy, any databases created in that previous verions will need to be updated as well. Please add a field called markup to the note table.
- Inline with the skosprovider 0.6.0 update, a languages attribute was added
skosprovider_sqlalchemy.models.ConceptScheme. When upgrading from a previous version of skosprovider_sqlalchemy, any databases created with that previous verions will need to be updated as well. Please add a table called conceptscheme_language with fields conceptscheme_id and language_id. (#18)
- To comply with the skosprovider 0.6.0 update, the sources attribute was
skosprovider_sqlalchemy.models.Collection. When upgrading from a previous version of skosprovider_sqlalchemy, any databases created with that previous verions will need to be updated as well. Please add a table source with fields id, citation and markup, a table concept_source with fields concept_id and source_id and a table conceptscheme_source with fields conceptscheme_id and source_id.
- All methodes that return a list have been modified in line with skosprovider 0.6.0 to support sorting. Sorting is possible on id, uri, label and sortlabel. The last two are language dependent. The sortlabel allows custom sorting of concepts. This can be used to eg. sort concepts representing chronological periods in chronological in stead of alphabetical order. (#20)
- To comply with the skosprovider 0.6.0 update, the deprecated
- When importing a provider, check if the languages that are being used in the provider are already in our database. If not, validate them and add them to the database. In the past the entire import would fail if not all languages had previously been added to the database. (#14)
- When importing a provider, try to import as much information as possible about the concept_scheme that’s attached to the provider. (#19)
- When querying for indvidual an conceptscheme or concept, use joinedload to reduce the number of queries needed to collect everything. (#15)
- Deprecated the
skosprovider_sqlalchemy.models.label()function. Please use
skosprovider.skos.label()from now once, since this function can now operate on both
skosprovider_sqlalchemy.models.Labelinstances. This was the reason for the BC break in this release.
- Make README work better on pypi.
- Fix a further problem with the length of language identifiers. Previous fix in 0.3.0 only fixed the length of the identifiers in the languages table, but not in the links from the labels and the notes to the language table. [BartSaelen]
- Added some documentation about setting up a database.
- Fix a bug with the deletion of a Concept not being possible without having it’s matches deleted first. [BartSaelen]
- Major BC break: A provider is no longer passed a database session, but a database session maker. This change was needed to get the provider to function properly in threaded web applications. This will mean changing the code where you’re creating your provider. In the past, you probably called a session maker first and then passed the result of this call to the provider. Now you should just pass the session maker itself and let the provider create the sessions for you.
- Different way of fetching the
ConceptSchemefor a provider. No longer fetches a conceptscheme at provider instantiation, but when needed. Otherwise we end up with a possibly very long cached version of a conceptscheme.
- Update to skosprovider 0.4.0.
ConceptSchemeinformation to a provider so it can be attached to
Conceptobjects that are handled by the provider.
- Let provider handle superordinates and subordinate arrays.
- Let provider add notes to collections.
- Added a
Matchmodel to handle matches. Expand the provider to actually provide information on these matches.
- Expand the field length for language identifiers. IANA suggests that identifiers up to 35 characters should be permitted. Updated our field length to 64 to have a bit of an extra buffer.
- Switch to py.test
- Add Coveralls support for code coverage.
- Add ability to configure the SQLAlchemy URL used for testing. Allows testing on multiple RDBMS systems.
- Run Travis tests for both SQLite and Postgresql.
- Fix a bug in
skosprovider_sqlalchemy.utils.import_provider()when dealing with narrower collections (#8). [cahytinne]
- Make the provider actually generate a URI if there’s none in the database.
- Compatibility with skosprovider 0.3.0
- Add a UniqueConstraint(conceptscheme_id, concept_id) to Thing. (#3)
- Rename the colletions attribute of
skosprovider_sqlalchemy.models.Thingto member_of. (#7)
- Pinned dependency on skosprovider < 0.3.0
- Pass data to
skosprovider.skos.Conceptusing keywords in stead of positions.
- Fixed a bug with collection members being passed instead of their ids.
- Fixed another bug where model ids were used instead of concept ids.
- Initial version
- Implementation of a SKOS domain model in SQLAlchemy.
- Implementation of a
skosprovider.providers.VocabularyProviderthat uses this model.
- Can query a hierarchy recursively or using nested sets.
- Utility function to import a
skosprovider.providers.VocabularyProviderin a database.