Material impacted substances#
Query definition#
- class MaterialImpactedSubstancesQuery#
Gets the substances impacted by a list of legislations for Granta MI material records.
All methods used to add materials and legislations to this query return the query itself so that they can be chained together as required. Records can be added using a combination of any of the available methods.
Once the query is fully constructed, use the cxn.
run()
method to return a result of typeMaterialImpactedSubstancesQueryResult
.Examples
>>> cxn = Connection("http://my_mi_server/mi_servicelayer").with_autologon().connect() >>> query = ( ... MaterialImpactedSubstancesQuery() ... .with_material_ids(['elastomer-butadienerubber', 'NBR-100']) ... .with_legislation_ids(["Candidate_AnnexXV"]) ... ) >>> cxn.run(query) <MaterialImpactedSubstancesQueryResult: 2 MaterialWithImpactedSubstances results>
- with_record_guids(record_guids)#
Add a list or set of record GUIDs to a query.
- Parameters:
- Returns:
Query
Current query object.
- Raises:
TypeError
Error to raise if the method is called with values that do not match the types described earlier.
Examples
>>> query = MaterialComplianceQuery() >>> query = query.with_record_guids(['bdb0b880-e6ee-4f1a-bebd-af76959ae3c8', >>> 'a98cf4b3-f96a-4714-9f79-afe443982c69']) <MaterialCompliance: 2 materials, batch size = 100, 0 indicators>
- with_record_history_guids(record_history_guids)#
Add a list or set of record history GUIDs to a query.
- Parameters:
- Returns:
Query
Current query object.
- Raises:
TypeError
Error to raise if the method is called with values that do not match the types described earlier.
Examples
>>> query = MaterialComplianceQuery() >>> query.with_record_history_guids(['41e20a88-d496-4735-a177-6266fac9b4e2', >>> 'd117d9ad-e6a9-4ba9-8ad8-9a20b6d0b5e2']) <MaterialCompliance: 2 materials, batch size = 100, 0 indicators>
- with_record_history_ids(record_history_identities)#
Add a list or set of record history identities to a query.
- Parameters:
- Returns:
Query
Current query object.
- Raises:
TypeError
Error to raise if the method is called with values that do not match the types described earlier.
Examples
>>> MaterialComplianceQuery().with_record_history_ids([15321, 17542, 942]) <MaterialCompliance: 3 materials, batch size = 50, 0 indicators>
- with_material_ids(material_ids)#
Add a list or set of materials to a material query, referenced by the material ID attribute value.
Material IDs are valid for both
MaterialUniverse
andMaterials - in house
records.- Parameters:
- Returns:
Query
Current query object.
- Raises:
TypeError
Error to raise if the method is called with values that do not match the types described earlier.
Examples
>>> query = MaterialComplianceQuery() >>> query.with_material_ids(['elastomer-butadienerubber', 'NBR-100']) <MaterialCompliance: 2 materials, batch size = 100, 0 indicators>
- with_batch_size(batch_size)#
Set the number of records to include in a single request for this query.
Default values are set based on typical usage of the Restricted Substances database. This value can be changed to optimize performance on a query-by-query basis if required. For example, you can change it if certain records contain particularly large or small numbers of associated records.
- Parameters:
- batch_size
int
Number of records to include in a single request to Granta MI.
- batch_size
- Returns:
Query
Current query object.
- Raises:
ValueError
Error to raise if the batch size is set to a number less than 1.
TypeError
Error to raise if a value of any type other than
int
is specified.
Notes
The Restricted Substances database makes extensive use of tabular data and associated records to store the complex hierarchical relationships that define compliance of products, assemblies, parts, specifications, and materials. As a result, it is impossible to determine the complexity of a particular query without knowing precisely how many records are related to the record included in the query.
The default batch sizes are set for each record type and represent appropriate numbers of those records to be included in the same request assuming typical numbers of associated records.
Even if the records are queried in multiple batches, the results are assembled into a single result object.
Examples
>>> MaterialComplianceQuery().with_batch_size(50) <MaterialCompliance: 0 materials, batch size = 50, 0 indicators>
- with_legislation_ids(legislation_ids)#
Add a list or set of legislations to retrieve the impacted substances for.
Legislations are identified based on their
Legislation ID
attribute value.
Query result#
- class MaterialImpactedSubstancesQueryResult(results, messages)#
Retrieves the result of running the
MaterialImpactedSubstancesQuery
class.This class describes the substances in the specified materials impacted by one or more legislations.
Examples
>>> result: MaterialImpactedSubstancesQueryResult >>> result.messages [LogMessage(severity='warning', message='Material "ABS+PVC (flame retarded)" has 2 substance row(s) with missing substance links.')]
- impacted_substances_by_material#
Impacted substances for each material specified in the original query.
- Returns:
Examples
>>> result: MaterialImpactedSubstancesQueryResult >>> result.impacted_substances_by_material [<MaterialWithImpactedSubstancesResult({MaterialId: elastomer-butadienerubber}), 1 legislations>,...]
- impacted_substances_by_legislation#
View of the results for a query for impacted substances, grouped by legislation only.
The substances from all items specified in the query are merged for each legislation, providing a single list of impacted substances grouped by legislation only. Substances are duplicated where they appear in multiple items for the same legislation.
- Returns:
- impacted_substances
dict
[str
,ImpactedSubstance
]
- impacted_substances
Examples
>>> result: MaterialImpactedSubstancesQueryResult >>> result.impacted_substances_by_legislation {'Candidate_AnnexXV': [ <ImpactedSubstance: {"cas_number": 90481-04-2}>, ...] }
- impacted_substances#
View of the results for a query for impacted substances, flattened into a single list.
The substances from all items specified in the query are merged across item and legislation, providing a single flat list. Substances are duplicated where they appear in multiple items or legislations.
- Returns:
- impacted_substances
list
[ImpactedSubstance
]
- impacted_substances
Examples
>>> result: MaterialImpactedSubstancesQueryResult >>> result.impacted_substances [<ImpactedSubstance: {"cas_number": 90481-04-2}>, ...]
- messages#
Messages generated by Granta MI when running the query. The presence of one or more messages means that something unexpected happened when running the query but that the query could still be completed.
Messages are sorted in order of decreasing severity and are available in the Service Layer log file.
Messages are also logged using the Python
logging
module to theansys.grantami.bomanalytics
logger. By default, messages with a severity of"warning"
or higher are printed on stderr.
Material result#
- class MaterialWithImpactedSubstancesResult(legislations, **kwargs)#
Retrieves an individual material that is included as part of an impacted substances query result.
This object includes two categories of attributes:
The reference to the material in Granta MI
The impacted substances associated with this material, both as a flat list and separated by legislation
Notes
Objects of this class are only returned as the result of a query. The class is not intended to be instantiated directly.
Examples
>>> result: MaterialImpactedSubstancesQueryResult >>> material_result = result.impacted_substances_by_material[0] >>> material_result.substances_by_legislation {'Prop65': [<ImpactedSubstance: {"cas_number": 90481-04-2}>]}
>>> result: MaterialImpactedSubstancesQueryResult >>> material_result = result.impacted_substances_by_material[0] >>> material_result.substances [<ImpactedSubstance: {"cas_number": 90481-04-2}>]
- property identity: str | None#
Item unique identifier.
This property is only populated on BoM query results and is equal to the
id
attribute of the corresponding input BoM item. If noid
has been defined on the BoM item, a unique auto-generated value is assigned during analysis.
- property external_identity: str | None#
Item external identity.
This property is only populated on BoM query results and is equal to the
<ExternalIdentity>
element of the corresponding input BoM item.
- property name: str | None#
Item name.
This property is only populated on BoM query results and is equal to the
<Name>
element of the corresponding input BoM item.
- property substances_by_legislation: Dict[str, List[ImpactedSubstance]]#
Substances impacted for this item, grouped by legislation ID.
- property substances: List[ImpactedSubstance]#
Substances impacted for this item as a flattened list.