Skip to content

Releases: CitrineInformatics/citrine-python

Citrine v2.11.2 is released!

06 Apr 15:03
33fc5c7

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

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

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

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

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

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

Citrine v1.53.1 is released!

18 Jan 15:05
0cae67c

Choose a tag to compare

In this release of Citrine Python, we've made some changes to improve your quality of life. We've improved the ability to connect candidates returned in python to those you see in your browser, and made our GEMD documentation more useful. We're also preparing for some future deprecations on our backend to improve the traceability of our candidates.

What's New

  • We now include a candidate_uid with each candidate that can be cross-referenced with the Citrine Platform web app URL. #803

Improvements

  • We'e updated our Data Model documentation to be cleaner, more readable, and more clear about how to update your GEMD Templates #802

Deprecated

  • We've added a deprecation warning that will trigger when one attempts to switch the assets in a Design Workflow that has generated candidates. This will become undoable in the future to maintain traceability of candidates to predictors and training data. It is recommended to create a new Design Workflow instead. #801

Full Changelog: v1.51.1...v1.53.1

Citrine v1.51.1 is released!

22 Dec 17:34
069c272

Choose a tag to compare

In this release of Citrine Python, we are happy to introduce new methods to support exciting features coming in the web application of the Citrine Platform. With both predictor versioning and the ability to update data on an entire branch exposed in this release, you will be able to automate updating branch data and operations on specific versions of your predictors. In addition, we've added a few more improvements to make Citrine Python better documented, easier to debug, and more consistent across classes. As always, we are continuously working of fixes and improvements to keep all our users running smoothly.

What's New

  • You can now see the version of a Predictor via the version attribute and also interact with specific versions of your Predictors by using the version argument in PredictorCollection methods (e.g. project.predictors.get()). Note that updating a Predictor on platform will always overwrite any existing Draft. If validation is successful, the Predictor will be incremented to the latest version. #785, #796
  • In line with upcoming UI releases, you now have the capability to update the data on you Branch to automate the process of pointing all predictors on your branch to the latest version(s) of your data source(s) with one call: project.branches.update_data(branch=my_branch). #793, #797

Improvements

  • We've enhanced our documentation to describe interactions with Experiment Data Sources and updating Branches to the latest data sources. #792, #798, #799
  • The status_detail field for Predictors and Design Spaces now has a more detailed structure, with individual message strings separated into list elements. #791
  • The method for creating a quick default predictor now includes create_default to replace the auto_configure method. The behavior is the same, but the method is now much more consistent with other areas of our platform (e.g. Design Spaces). #794

Fixes

  • Minor internal fixes. #795

Full Changelog: v1.44.1...v1.51.1

Citrine v1.44.1 is released!

23 Nov 00:46
13e8eb1

Choose a tag to compare

This release of Citrine Python introduces a few new capabilities as well as paving the way for new features coming in the Citrine Platform. Users can now set random seeds for Predictor Evaluation Workflows to ensure repeatability, create Design Spaces that are constrained to the bounds of their training data, and stream the contents of files on our platform directly. Additionally, we've introduced the first methods around the Experiment Data Source, which will be introduced in more detail in upcoming releases.

What's New

  • We now allow Predictor Evaluation Workflows to be triggered with an optional random_state argument to pass a random seed to the evaluation method. This will allow users to set the random seed and ensure evaluation results are deterministic and reproducible. #788
  • We have added the capability in the design_spaces.create_default() method to constrain parameters based on the predictor's training data. By passing include_parameter_constraints=True to the create_default method, process parameters will be constrained to the range of the training data in the resulting design space. #789
  • We now have the ability to directly access the byte stream of a file_link via the read method. #790
  • In preparation for upcoming platform features, we have added the ability to read Experiment Data Sources to a CSV format. An Experiment Data Source can be identified as an attribute of a specific Branch, or as part of the training_data of a Predictor. By calling the .read() method on the ExperimentDataSourceCollection resource and passing a UID or ExperimentDatasource object. The resulting information will allow you to inspect what is in the Data Source so you can verify, ingest, or perform additional analysis on your training data. We will include more documentation around how to interact with Experiment Data Sources in future releases. #787

Full Changelog: v1.41.1...v1.44.1

Citrine v1.41.1 is released!

26 Oct 19:09
06bd2cb

Choose a tag to compare

In this release of Citrine Python, we've made a minor, but critical update to our dependencies to keep you all running smoothly as the Python ecosystem continue to develop.

Fixes

  • Updated default install of pint for gemd-python to account for an upstream interface change #786

Full Changelog: v1.41.0...v1.41.1