Skip to content

Releases: CitrineInformatics/gemd-python

GEMD v1.10.4 is released!

22 Aug 19:34
4279157
Compare
Choose a tag to compare

Quality of life improvements that speed up unit conversion calls. These should be transparent.

Improvements

  • We added an early exit when the two unit strings are identical #173
  • Add caching for repeated calls for the same units and value #174

Full Changelog: v1.10.2...v.1.10.4

GEMD v1.10.2 is released!

20 Jul 18:51
cbc0f42
Compare
Choose a tag to compare

One new great feature and some quality of life coming your way.

Improvements

  • bounds objects now have union and update methods. This should make it much more straightforward to update your templates when you encounter out-of-bounds-but-still-valid data values. #170
  • We've added some input filters to our InChI value type so common ways people don't follow the standard (e.g., skipping the InChI=1S/ prefix) won't break your workflow. #172
  • We've updated our contributing docs. This should remove a couple of common stumbling blocks. #171

Full Changelog: v1.9.0...v1.10.2

GEMD v1.9.0 is released!

24 May 00:43
f4bb7e5
Compare
Choose a tag to compare

It's been a while since our last release, so we're happy to offer up the results of some spring cleaning. No big changes, but a good number of little ones tidying up the code base and hopefully making our partners lives easier.

Improvements

  • We've substantially increased the number of type hints in our API. This should make many IDEs happier, and thus increase your happiness as well. (#168)
  • We've exposed cached_isinstance through our public API. Some of our downstream code was doing a large number of type checks, and so this just seemed like the right thing to do. (#169)
  • And we've added another unit to our materials-tuned units file. (#167)

Fixes

  • We've fixed a number of typographic errors in the code base (#168, #165)
  • We fixed a bug where an Iterable type check was behaving badly with strings. (#166)

Full Changelog: v1.8.1...v1.9.0

GEMD v1.8.1 is released!

07 Jan 19:51
bf71901
Compare
Choose a tag to compare

This release has several quality-of-life improvements that make it drastically easier to build and validate large GEMD material histories using fewer keystrokes. Let us know what you think!

What’s New

  • We've made creating objects simpler. Instead of creating each object individually, helper functions allow you to quickly create self-contained blocks of information. (#160):
    • A method to make a material node, containing a material run, its corresponding spec, and the corresponding process run and spec that created them.
    • A method to use one input material node as an ingredient in an output material node.
    • A method to add a Measurement to a MaterialRun.
    • Methods to easily build and add Attributes and Values in a type-safe way.
  • We've added support for instant data validation. Any added values are automatically checked against the bounds of the relevant template, allowing you to spot errors at the source. As a user, you can specify if the results of that check are ignored, raise a warning, or throw an exception. Note that instant checks are only performed against local templates. If the template is a LinkByUID, then validation can only be done upon ingestion. (#161)
  • We've added a convenience method for returning a full list of every object that a single object references. Given the complex way objects can reference each other, having a central way to ask about all the objects, templates and links that they depend will help in bookkeeping for database construction. (#155)

Improvements

  • We've made importing easier. We've dramatically increased the number of modules that expose GEMD objects and helper functions for import -- you can now import all defined objects as easily as from gemd import *. (#159)
  • We've added up to Python 3.10 to our Travis testing. (#162)

Full Changelog: v1.4.1...v1.8.1

GEMD v1.4.1 is released!

18 Nov 22:43
4f80045
Compare
Choose a tag to compare

The only significant user-facing change in this release is the ability to substitute objects in place instead of duplicating your entire data structure. But most users should notice a substantial improvement in speed, particularly when doing object comparisons.

Improvements

  • The equality comparison between Base Objects should now be much faster. While it still uses __eq__ or ==, internally it hands off to a function that can maintain context as it crawls the graph.
  • The substitute_objects and substitute_links methods can now operate either by copying your structure (as before) or in place. This should make rehydrating objects a lot simpler.
  • Following a lot of profiling, several functions that were doing introspection are now being cached, reducing the degree to which we relied on repeating expensive evaluations.

GEMD v1.3.0 is released!

26 Oct 22:19
1b648c3
Compare
Choose a tag to compare

This release contains quality of life improvements for linking and indexing, as well as some minor fixes.

Improvements

  • A to_link method was added to Base Entities (#154). This offers similar functionality to the LinkByUID.from_entity method, but we expect this is a more intuitive interface and saves an import + typing. Plus it avoids the confusing situation where passing an object to a factory can mutate the object.
  • We also modified the hashing and equality behavior of Link By UIDs so that they behave the same as tuples of scope and ID (#154). Methods like make_index used the tuples instead of the object, and so this should unify those approaches.

Fixes

  • iterable objects are now handled correctly by recursive_foreach (#151)
  • allowed_names and allowed_labels are now empty lists by default, in contrast to maintaining a distinction between empty lists and None. The docs were ambiguous about which behavior was intended and other implementations had the new behavior. (#153)

GEMD v1.2.0 is released!

06 Oct 19:14
02272ad
Compare
Choose a tag to compare

What’s New

  • GEMD objects now support a much more robust version of equality checks. == will now check if references within an object (e.g., material_run.spec) refer to the same things by making LinkByUIDs equal to objects that share their IDs. This check will also recursively crawl through ingredients and measurements, making it much easier to determine if a stored version of a material history contains the same information as a newer one. (#150)

Improvements

  • There were some minor performance improvements as well stemming from some updates that were missed in #142.

GEMD v1.1.0 is released!

01 Oct 23:03
ada261c
Compare
Choose a tag to compare

Improvements

  • The from_entity method from LinkByUID now uses the keyword argument scope, with the positional keyword name now deprecated. This matches library behaviors elsewhere. Documentation of the method was improved while we were in there. (#149)

GEMD v1.0.2 is released!

30 Jul 21:09
165597b
Compare
Choose a tag to compare

This release involves minor changes only.

Improvements

  • Added inch-pounds as a unit for torque to the units file. (#148)

Fixes

  • Proofreading edits to the documentation. (#146)

GEMD v1.0.0 is released!

15 Jun 18:07
11c3611
Compare
Choose a tag to compare

Version 1.0.0 signifies that GEMD is stable and mature. From here on out, all breaking changes to the codebase must incur a major version bump. This means that code now written on top of gemd-python is guaranteed to remain valid until at least version 2.0.0. We will continue to make improvements as needed.

Improvements

  • The documentation was updated to be more legible and comprehensive (#145)