Citrine

Latest version: v3.2.4

Safety actively analyzes 630052 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 10 of 22

0.134.0

Not secure
This release includes most if not all of the **breaking changes that will go into version 1.0.0 of citrine-python**. Updating your libraries and scripts to work with this release will **facilitate a smooth migration** to version 1.0.0.

The two most notable changes are **the removal of deprecated code** and **stricter enforcement of keyword arguments**. If you run into errors after updating, it can likely be fixed by adapting to one of these changes.

Removal of Deprecated Code
If you are using a deprecated class, method, or argument, and are unsure of what to use instead, please see the comprehensive list in the "Deprecated and Removed Items" section below. For each removed item it describes the updated way to achieve the same functionality. In most cases a simple name change suffices. In a few cases there is some migration work, and how to do that is explained below.

Of particular note are the classes that have been removed after being superseded by a comparable yet slightly different class: `GeneralizedMeanPropertyPredictor`, `DeprecatedExpressionPredictor`, `PerformanceWorkflow`, and `CrossValidationAnalysisConfiguration`. Resources of these types will no longer render in citrine-python.

Enforced Keyword Arguments
Keyword arguments are enforced in python by placing an asterisk in a method signature. All arguments after the asterisk must be specified with keywords. For example, the `TableConfigCollection` signature `get(self, uid, *, version=None)` means that the call `tables.get(my_uid, my_version)` is not valid. Instead, you must use a keyword for `version`: `tables.get(my_uid, version=my_version)`. A keyword for `uid` is optional. Citrine-python currently enforces keyword arguments in many places; this release makes their usage broad and consistent. Migrating to consistent enforcement of keyword arguments makes code written on top of citrine-python more legible and easier to maintain.

Other Changes
The other changes in this release are backwards compatible or non-user-facing and hence do not require immediate migration, though implementing these change will result in a better experience. We've made terminology more consistent, made it easier to share resources between projects, improved the performance of the gemd-python library, and more. Details are below.

What's New
* Keyword arguments are enforced more broadly and consistently (628). [Keyword-only arguments](https://www.python.org/dev/peps/pep-3102/) make code developed on top of citrine-python easier to read and easier to maintain. All **externally-facing methods now require keywords** be used for all arguments, with the **exception of the first argument if and only if that argument is stable, ubiquitous, and its meaning is obvious**. See "New Keyword-Only Arguments", below, for a complete list.
* Gem Variables `TerminalMaterialInfo` and `TerminalMaterialIdentifier` should now be used in place of `RootInfo` and `RootIdentifier` (618). This is part of a standardization on the term "terminal material" to describe the ultimate material in a GEMD material history.
* The input descriptor of a `MolecularStructureFeaturizer` is now called `input_descriptor`, not `descriptor` (622). This aligns its behavior with that of the other featurizers.

What's Gone
* **A large number of long-deprecated classes, methods, and arguments have been removed** (616). See "Deprecated and Removed Items" section, below, for a complete list.
* **Non-user-facing arguments have been removed from constructor methods**, making docstrings more concise and easier to read (620, 630). These attributes are automatically assigned when the object is built, and it is unlikely that their removal will affect your code. If you find that your code *is* setting one of these arguments, you can safely remove it.

Improvements
* Several improvements to gemd-python, described in their [release notes](https://github.com/CitrineInformatics/gemd-python/releases/tag/v0.18.1).
* The method to share a resource between projects, `ProjectCollection.share()`, now has a simpler interface (617).
* The `list()` method for GEMD object collections now returns an `Iterator`, not a `List` (621). This aligns its behavior with the rest of the client and leads to better performance.
* A new `Citrine` instance now by default reads the api key and host from the environment variables `CITRINE_API_KEY` and `CITRINE_API_HOST` (625).
* Doc improvements (619, 623, 627)

Coming Soon
* The ability to list archived design workflows
* Official release of Citrine-python version 1.0.0!

Deprecated and Removed Items
The following have been changed or removed after being deprecated for at least one month:
* All `RealDescriptor` objects must have units specified. If the quantity is dimensionless, set `units=''`, or `units='dimensionless'`
* The `training_data` field in a `Predictor`, if specified, must be a list. If a `Predictor` has a single training data source, wrap it in brackets: `training_data=[my_data_source]`.
* A `collection`, such as `workflow.design_executions`, must be specified when using the utility method `wait_while_executing()`
* Removed items:
* All references to `Ara`, which was the development codename for Gem Tables
* Class `Table`, which is now `GemTable`
* Method `GemTable.read()`, instead use `GemTableCollection.read()`
* Attribute `TableConfig.definition_uid`, instead use `TableConfig.config_uid`
* Method `TableConfigCollection.get_job_status()`, instead use `initiate_build()` to kick off table building and `get_by_build_job()` to synchronously get the table
* Class `CrossValidationAnalysisConfiguration`, instead use `CrossValidationEvaluator`
* Class `CategoricalConstraint`, instead use `AcceptableCategoriesConstraint`
* Arguments `min`, `max`, `min_inclusive`, and `max_inclusive` in `ScalarRangeConstraint`, instead use `lower`, `upper`, `lower_inclusive`, and `upper_inclusive`
* Class `GeneralizedMeanPropertyPredictor`, instead use `MeanPropertyPredictor` ([migration guide](https://github.com/CitrineInformatics/citrine-python/blob/c3c7c4db406bdb72c851918b47392f280046e45c/src/citrine/informatics/predictors/generalized_mean_property_predictor.py#L19))
* Class `DeprecatedExpressionPredictor`, instead use `ExpressionPredictor` ([migration guide](https://github.com/CitrineInformatics/citrine-python/blob/c3c7c4db406bdb72c851918b47392f280046e45c/src/citrine/informatics/predictors/expression_predictor.py#L73))
* Argument `max_size` in `EnumeratedProcessor`, instead use `max_candidates`
* Class `WorkflowExecution`, instead use specific classes `DesignExecution` or `PredictorEvaluationExecution`
* Class `WorkflowExecutionCollection`, accessed with `project.workflows`, instead use specific collections `project.design_workflows` or `project.predictor_evaluation_workflows`
* Class `PerformanceWorkflow`, instead use `PredictorEvaluationWorkflow`
* Methods `filter_by_....()`, instead use corresponding `list_by_...()` (e.g., use `list_by_tag()` instead of `filter_by_tag()`). The `filter_by_...()` methods have better performance.

New Keyword-Only Arguments
The following methods and constructors now require keywords be used for all arguments, unless otherwise noted:
* Constructors
* All `Constraint` constructors
* All `DataSource` constructors
* All `Descriptor` constructors, although no keyword is required for the first argument, `key`
* All `Predictor`, `DesignSpace`, `Processor`, `Workflow`, and `PredictorEvaluator` constructors, although no keyword is required for the first argument, `name`
* All `Variable` constructors already require keyword-arguments, but the first argument, `name`, is now exempt
* All `Dimension` constructors, although no keyword is required for the first argument, `descriptor`
* All `PredictorEvaluationMetric` constructors
* `ProjectMember()`
* `TableConfig()`
* `Project()`
* `Dataset()`
* `User()`
* Methods
* Most register/get/update/list/delete methods have one primary argument that does not require a keyword. If there are additional arguments then they do require keywords and are generally optional. Examples and special cases:
* A call to `update()` does not require a keyword, since the only argument is the `model` to be updated.
* A call to `delete()` does not require a keyword for the first argument, `uid`, but requires a keyword for any subsequent optional parameters, such as `dry_run`.
* The GEMD method `list_by_tag()` does not require a keyword for the first argument, `tag`, but requires keywords for subsequent optional arguments.
* `list()` methods have no required arguments. The optional parameters, such as `page` or `per_page`, require keywords.
* `UserCollection.register()` requires keywords for all arguments, since it uses distinctive parameters.
* `DescriptorMethods.from_predictor_responses()` and `DescriptorMethods.descriptors_from_data_source()`
* `DesignExecution.candidates()`
* `DesignSpaceCollection.create_default()`
* `FileCollection.upload()`, `FileCollection.download()`, and `FileCollection.process()`
* `PredictorEvaluationWorkflowCollection.create_default()`
* `PlatformVocabulary()` and `PlatformVocabulary.from_templates()`
* Utility methods for asynchronous tasks: `wait_while_validating()`, `wait_while_executing()`, and `wait_for_asynchronous_object()`
* Utility seeding methods, such as `find_collection()` and `find_or_create_project()`
* `ProjectCollection.transfer_resource()`, `ProjectCollection.search()`, and `ProjectCollection.update_user_role`)

0.133.1

Not secure
This release mainly makes it easier to specify on-platform GEMD objects. Any method that accepts a reference to a GEMD object can now accept that reference in one of four ways:
* The Citrine ID, as a string
* The Citrine ID, as a UUID
* A LinkByUID object (scope-id pair)
* The Python representation of that object

The pattern of specifying the scope and the id as separate arguments is deprecated.

What's New

* Flexibility in how on-platform GEMD objects are specified (611)

Improvements

* Small doc fixes (619)

Coming Soon

* Citrine-python v1 release!

0.129.2

Not secure
This release removes deprecated `Workflow` functionality and transitions to using `main` instead of `master` as the primary branch

What’s New
* The `citrine-python` repo now uses `main` instead of `master` as its primary branch.

Deprecated
* Legacy `DesignWorkflow`s and `PerformanceWorkflow`s can no longer be registered, updated or triggered through the client. They can still be viewed and listed. Please transition to using the latest `DesignWorkflow` and `PredictorEvaluationWorkflow` instead.

Coming Soon
* Legacy `DesignWorkflow`s and `PerformanceWorkflow`s will be entirely removed from the client in favor of the latest `DesignWorkflow` and `PredictorEvaluationWorkflow`!

0.128.2

Not secure
This release mostly includes improvements to the documentation. There's also a new, standardized way to check the status of a long-running process.

This work is in service of cutting the eventual v1.0.0 release of citrine-python. Releasing v1.0.0 indicates that we expect the software to be polished, robust, and resistant to change. We will be making many upgrades in the next few weeks, including some breaking changes, while working towards this goal.

What's New
* Objects that represent long-running processes (validation, training, report generation, and workflow execution) now have boolean-valued methods `succeeded()`, `failed()`, and `in_progress()` to report their status. These methods do not query the backend; you still need to pull the most recent version. But it is no longer necessary to string-match on the `.status` field (597).
* `IngredientsToSimpleMixturePredictor` has been renamed `IngredientsToFormulationsPredictor`. This predictor constructs a formulation from a list of ingredients, but it's not necessarily a simple mixture (a mixture of atomic ingredients), so the old name was inaccurate (601).
* `TableConfigCollection.default_for_material` can now accept the input material as a `LinkByUID` object instead of having separate arguments for `scope` and `id` (602).

Improvements
* Change theme and formatting to make documentation more legible and complete (603).
* numpy dependency removed to make the client more lightweight (604).
* Documentation improvements and clarifications (602, 606, 607).

Deprecations
* The `scope` argument is deprecated in `TableConfigCollection.default_for_material`. Use a `LinkByUID` object instead (602).

Coming Soon

0.125.1

Not secure
This release brings several formulations-related predictors to Beta. This means that they are well-documented, stable, and expected to work for a variety of problems. We are excited to have them used widely and welcome your feedback.

This release also contains several changes in service of cutting the eventual v1.0.0 release of citrine-python. Releasing v1.0.0 indicates that we expect the software to be polished, robust, and resistant to change. We will be making many upgrades in the next few weeks, including some breaking changes, while working towards this goal.

What's New
* The `MeanPropertyPredictor` now implements stricter behavior when `impute_properties` is `False`. If a formulation does not have a value for a given property, then it will not be featurized. (583).
* The `get` methods for `GemTable` and `TableConfig` no longer require that a version number be specified. If not specified, the most recent version is returned (594).

Improvements
* More flexibility when passing `set`, `list`, and `tuple` arguments. A method that requires a collection will now generally accept all three types. (585)
* Several not-yet-implemented and not-sensical REST methods have been given clear error messages (590).
* More thorough, correct, and uniform documentation (588, 595)
* Enumerated the allowed `resource_type` values, for use in access control calls (599).

Deprecated
* `get_with_version` is deprecated for `TableConfig`. Instead, use `get` and specify the version number (594).

Coming Soon

0.119.0

Not secure
This release adds the ability to limit the number of design candidates that are evaluated when using the `MonteCarloProcessor`, which should make it easier to develop design workflows before scaling them up.

What's New
* The `MonteCarloProcessor` has a new `max_candidates` parameter that limits the number of design candidates that are evaluated (https://github.com/CitrineInformatics/citrine-python/pull/584)

Page 10 of 22

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.