Skip to content

Releases: CitrineInformatics/citrine-python

GEMD v2.19.0 is released

10 May 16:43
c0c5579
Compare
Choose a tag to compare

A handy new option and a little more maintenance.

What's New

  • We've added an option when deleting the contents of a dataset to skip templates. This means that, for a pesky corpus that needs to be rebuilt rather than just updated, your templates can persist, and thus all your tables and AI artifacts will still work. #853

Deprecated

  • We've deprecated the code associated with some design space reuse approaches the platform no longer supports #852

Full Changelog: v2.17.1...v2.19.0

Citrine v2.17.1 is released!

02 May 20:42
e5fe398
Compare
Choose a tag to compare

One new feature for generative design, and a whole bunch of maintenance work.

What's New

  • Structure exclusion! As you mutate your base molecules to explore new chemistries, you can now specify what types of groups you don't want to consider. #848

Improvements

  • We've reworked the relationships between our various libraries, which should result in faster code in your Jupyter notebooks and ETL scripts.
  • And a better safety net: we've added Python 3.11 to our regular testing protocol. #851

Full Changelog: v2.15.0...v2.17.1

Citrine v2.15.0 is released!

26 Apr 19:42
9be3cde
Compare
Choose a tag to compare

Bug fixes, a bit of refinement, and more bug fixes. No new features for this release, but several corrections to make our interfaces work more smoothly.

Improvements

  • We've simplified the predictor classes to better reflect how the Platform operates. All Predictors are Graph Predictors and we've added a new class to represent the nodes of that graph. This should reduce the coding effort for defining and interacting with your models. #844
  • We've added a method to the Predictor Collection for asynchronously making a default predictor, if that's more your style. #849

Fixes

  • We've corrected some issues with how the SDK was defining ingredient ratio constraints #845
  • We've made some unsupported routes a little more obvious #846
  • And we've cleaned up test around some deprecated methods #847
  • Don't forget that gemd-python also fixed some bugs with parsing complex unit expressions and serialization.

Full Changelog: v2.12.0...v2.15.0

Citrine v2.12.0 is released!

14 Apr 17:39
6bc78b4
Compare
Choose a tag to compare

In this release of Citrine Python, we are happy to announce some new changes to make developer's lives easier. We've included new predictor endpoints that allows folks to programmatically fix stale models, simplified some of our code around path construction for file_links, and updated our allowed fingerprint methods in Generative Design. As always, we hope these changes keep you running smoothly.

What's New

  • New endpoints to allow users to identify stale predictors (predictors.is_stale(uid, version=version)) and retrain stale predictors in-place (predictors.retrain_stale(uid, version=version)). This allows users to retrain predictors that have become stale and use single prediction features and Candidate Modification. #843

Improvements

  • Simplified our path construction & escaping by centralizing and refactoring methods. #840
  • We've updated our documentation and valid fingerprint types accepted in Generative Design strategies. #842

Full Changelog: v2.11.2...v2.12.0

Citrine v2.11.2 is released!

06 Apr 15:03
33fc5c7
Compare
Choose a tag to compare

Today's Citrine Python release is primarily solving a bug that was stinging our users. We're also simplifying our code to make Citrine Python easy to use and easy to learn.

Deprecated

  • We've simplified some of our predictor nodes by deprecating the need to designate specific formulation descriptors for the SimpleMixturePredictor and IngredientsToSimpleMixturePredictor (#838) and the capability to designate training data sources on any predictors outside of a GraphPredictor (#839)

Fixes

  • Squashed a bug in the deserialization of predictors leveraging our Chemical Formula Featurizer. #841

Full Changelog: v2.10.0...v2.11.2

Citrine v2.10.0 is released!

30 Mar 18:10
19b7c03
Compare
Choose a tag to compare

In this release of Citrine Python, we are excited to improve the quality of life for our users and our contributors. We make it easier to reference branches from IDs available in our web app and also include early functionality that allows users to directly ingest a pre-formatted file into GEMD objects. We've also simplified our testing strategy and included a few bug fixes, all in the effort to keep you running (and contributing) smoothly.

What's New

  • You can now get the root of a branch, rather than the specific version, using the new BranchCollection.get_by_root_id. #835
  • As alpha functionality, you can now ingest CSV and/or Excel files directly into a GEMD structure, provided the files are formatted according to gemd-ingest guidelines. #837

Improvements

  • Simplified and centralized testing for faster development. #834

Fixes

  • Correction to value types for Chemical Formulae and Molecular Structures. #825
  • Ensure labels are included in prediction requests. #836

Full Changelog: v2.8.0...v2.10.0

Citrine v2.8.0 is released!

16 Mar 19:19
5c73dd2
Compare
Choose a tag to compare

With this release of Citrine Python, we are ecstatic to release two major pieces of functionality that have been on the wishlist of many of our users for quite some time. Users with valid Predictors can now submit single prediction tasks and return predictions on just one material. We also now support constraining the ratio of ingredients and labels, allowing users to tackle more complex formulation problems with our optimizer. Not to be outdone, we've also added the capability to use conditional "if" statements within Expression predictors. And if that wasn't enough, we continue to add improvements and simplifications to our python client to keep our users running smoothly.

What's New

  • You can now make single prediction calls to a valid Predictor by providing it with a SinglePredictRequest, containing candidate information in the form akin to a DesignMaterial. The returned object will contain all the values one is able to predict with the Predictor as well as uncertainty. See an example in our Predictor Documentation. #828, #833
  • We now support constraints on the ratio of ingredients in FormulationDesignSpaces. By creating an IngredientRatioConstraint, you can constrain the ratio of any combination of ingredients and/or labels to any combination of ingredients and/or labels to be between a minimum and maximum value. We also allow multipliers for each ingredient and label in the numerator or denominator to encode statements such as "constrain 1 part Additive for every 100 parts Solvent". #827

Improvements

  • Updated documentation to include the usage of "if" statements inside Expression Predictors. #832
  • FileLinks in citrine python have been augmented to include much more additional metadata. Whereas the dataset.files endpoint once returned only the filename and url, we now also return created by, created on, and version number fields, among others. #831

Deprecated

  • The FileLink.process method has been deprecated in favor of UI-driven async ingest methods. #829
  • It is no longer needed to designate a formulation_descriptor on a GemTableDataSource - the descriptor is automatically designated to aid future development. #830

Full Changelog: v2.2.1...v2.8.0

Citrine v2.2.1 is released!

02 Mar 20:26
39286a5
Compare
Choose a tag to compare

A small follow up release for v2.0 taking care of some clean-up that escaped attention during our big release.

Improvements

  • We've exposed status_detail for design executions, generative design executions, and PEW executions. (#822)

Deprecated

  • Accordingly, we've deprecated status_info across those and all assets, making it a read-only property which pulls its values from status_detail.(#822)

Fixes

  • Clean-up for now obsolete code that got missed in our previous sweep (#821, #823, #824)

Full Changelog: v2.0.0...v2.2.1

Citrine version 2 is released!

21 Feb 18:32
ff16006
Compare
Choose a tag to compare

We are thrilled to announce version 2.0.0 of citrine-python. This release is largely focused on streamlining the SDK, removing deprecated and unused concepts. Upgrading to version 2 will likely necessitate changes to existing scripts.

What's New

  • Written documentation of the new "generative molecular design" feature: #816
  • An optional random seed has been added to predict requests, to facilitate reproducibility: #819
  • An optional max_candidates argument has been added to the design workflow execution trigger method. Set this value to a small number in order to run a quick design workflow execution. This can be useful for verifying that the candidates look as expected: #806

What's Gone

  • Processors have been removed. They can no longer be registered on the platform and are no longer specified as part of a design workflow. The platform will select the most appropriate processor for the problem.
  • A DesignWorkflow can no longer be registered without a branch. Please create a Branch on the Project and use branch.design_workflows.register(...) instead.
  • A new Citrine instance now requires keyword arguments for scheme, host, and port.
  • The deprecated SimpleMLPredictor has been removed. Please use a GraphPredictor instead.
  • The .output field of AutoMLPredictor has been removed. Please use .outputs for a list of all outputs.
  • The deprecated RootIdentifier has been removed. Please use TerminalMaterialIdentifier instead.
  • The deprecated IngredientsToSimpleMixturePredictor has been removed. Please use IngredientsToFormulationPredictor instead.
  • Methods that reference GEMD objects no longer have separate scope and id arguments. Please use a LinkByUID object to specify a customer scope-id pair.
  • The deprecated TableConfigCollection.get_with_version() has been deprecated in favor of .get().
  • Assets can no longer be archived or restored by modifying the archived property. Instead, please use the .archive() and .restore() methods.
  • status_info has been removed in favor of the more detailed .status_detail property.
  • The unused name and description fields have been removed from Scores. Please do not specify them.
  • The deprecated list_all() method has been removed for GEMD object collections. Please use list() instead.
  • The deprecated page argument has been removed from all listing methods.
  • The deprecated filter_by_attribute_bounds() method has been removed in favor of list_by_attribute_bounds().
  • When using delete_contents() to delete the contents of a dataset, the prompt_to_confirm argument must now be specified.
  • The deprecated convert_version_to_graph() and convert_version_and_update() methods have been removed in favor of convert_to_graph() and convert_and_update().
  • The deprecated ReportResource.get_version() method has been removed in favor of ReportResource.get().

Full Changelog: v1.58.1...v2.0.0

Citrine v1.58.1 is released!

16 Feb 16:27
5e6525b
Compare
Choose a tag to compare

We're very excited about how this release will let our SDK users play with the latest platform features. This includes our new cross-dataset query tools, generative molecular design, and editing with platform-suggested candidates. Plus, of course, the normal maintenance and quality of life updates one expects.

What's New

  • We've added some new variables to our GEMTables (#805, #812) that limit attribute and ingredient queries to the immediate material node of interest. These new variables were developed to cope with the extreme diversity we see when trying to meld data from across diverse data imports. This means that grabbing results from multiple experiments and feeding them into a single sequential learning workflow is much easier!
  • If you're curious about what impact changing parameter values will have on one of our proposed candidates, you're in luck! Checkout the PredictRequest route our platform now offers (#808)
  • And if you'd like to see what our platform can do to conceive of novel ingredients and what impact those might have on your material performance, we now have the ability to explore the chemical space around the ingredients you have been using to see what a little tweak in those functional groups might enable (#804)

Improvements

  • We've gotten rid of obsolete routes (#809)
  • We've also updated our setup.py and dependencies to resolve some basic maintenance issues (#810, #814)

Full Changelog: v1.53.1...v1.58.1