Changelogs >


PyUp actively tracks 437,546 Python packages for vulnerabilities to keep your Python environments secure.

Scan your dependencies


- a253254: bumped version (David Doty) [218](
- fb0ea4f: testing whether forward annotations work on Python 3.7 (David Doty) [218](
- 52f6666: closes 216: use `|` instead of `Union` for union type annotations (David Doty) [218](
- dc5f9b2: fixed from future import annotations error in (David Doty) [218](
- df9933c: change `search_for_dna_sequences` to `search_for_sequences` (David Doty) [220](
- 60d3cd6: fixed bug in specifying unitless quantities in (David Doty) [220](
- 36f2d75: fixed up `display_report` (David Doty) [220](


Breaking changes
A few function names have changed, in particular `nupack_complex_free_energy_*` functions are now `nupack_free_energy_*` to avoid confusion with the `ComplexConstraint` class and functions creating those.

- 8d67ae8: removed warnings about `report_only_violations` being ignored, now that 134 is implemented (David Doty) [215](
- b0245f2: Update (David Doty) [215](
- 7cfb3a2: added parameter `overwrite` to `assign_sequences_to_scadnano_design` to force overwrite of existing sequences (David Doty) [215](
- 9376e02: changed type of `_process_pool` and ensure it is non-`None` if accessed (David Doty) [215](
- 2106de1: closes 213: display constraints report graphically in jupyter notebook (David Doty) [214](
- 0f40483: fixed sphinx errors (David Doty) [214](
- 4530191: closes 133: implement parallelism for SingularConstraints (David Doty) [215](
- 1de5b5d: fixed scrolling output (David Doty) [215](
- ae114a1: Update (David Doty) [217](
- 472ff71: added time trials Jupyter notebook that got lost in the failed merge (David Doty) [217](
- 3e4d787: beefed up display options for `display_report` (David Doty) [217](
- b633f17: re-implemented 133 after changes disappeared mysteriously in most recent PR (David Doty) [217](
- 9c69d26: Update (David Doty) [217](
- ab39a3d: bumped version to 0.3.0 because of breaking changes in function names (David Doty) [217](
- bc1395a: Merge branch 'main' into dev (David Doty) [217](


Breaking Change: removed `domain_names` parameter from `Strand` constructor

In fixing issue 175, we have removed the argument `domain_names` from the `Strand` constructor. Now, the correct way to create a `Strand` from a list of domain names is to call the new method [`Design.add_strand`](

In particular, you will need to create a `Design` prior to creating any strands.

The [`Design.add_strand`]( method returns the `Strand` that was created, so `design.add_strand` should be a drop-in replacement for the `Strand` constructor that was previously used in this way.

So replace code like this:

XXX: no longer works
strands = [Strand(domain_names=[f'a{i}', f'b{i}']) for i in range(5)]
design = Design(strands)

with this

new way to create a Strand from domain names
design = Design()
strands = [design.add_strand(domain_names=[f'a{i}', f'b{i}']) for i in range(5)]

The reason this was done was to address issue 175. When the `add_strand` method sees a new domain name, it creates a new `Domain` object and saves it in the `Design`, and when it sees a domain name that has been used before with the same `Design`, then it uses the saved `Domain`.

Previously, this saved `Domain` object was stored in a global variable, which caused incorrect results in scripts where two designs were used at the same time with the same domain names.

Caution: call `Design.computed_derived_fields()`

Previously, it was advisable to create the `Design` last, after creating all domains and strands. The constructor calls a method `Design.computed_derived_fields()` that computes some fields based on other fields in `Design`.

This method is called at the start of ``, so if all you do with a design is give it to this function, your code should still work. However, if you are doing any other processing in between creating the `Design` object and calling that function, then it is safest to call `Design.computed_derived_fields()` to ensure that these fields have the proper values.

For example, the field `` is computed based on the strands in the design, so for it to be correct this method may need to be called, in case Strands were added "manually" by appending to the field `Design.strands`, although that field should be correct if `Design.add_strand` is called to add strands.

- 31b3220: updated requirements to include tabulate and installation instructions in README (David Doty) [207](
- a50a454: Update (David Doty) [207](
- 13e6337: fixes 190: `DomainPool`'s should have distinct names (David Doty) [204](
- ec40907: closes 175: Domains and pools should be stored per-design (David Doty) [206](
- bfb9c17: updated installation instructions to include pip (David Doty) [207](
- 422e391: Update (David Doty) [207](
- 1ba345b: Update (David Doty) [207](
- beeb30c: Update (David Doty) [207](
- d7e1619: Update (David Doty) [207](
- 6e74f96: Update (David Doty) [207](
- 4b16c91: Update (David Doty) [206](
- f6dda1a: switched to print statements instead of logging for iteration updates; still need to add SearchParameters options to control this more (David Doty) [206](
- 3b47359: closes 134: implement `SearchParameters.report_only_violations` (David Doty) [205](
- d9cd965: Update (David Doty) [205](
- 43a5cc8: removed Python 3.8+ f-string formatting (David Doty) [205](
- e56a861: Merge branch 'dev' into 175-domains-and-pools-are-global-rather-than-per-design-recreating-same-design-causes-error (David Doty) [206](
- 6c5f215: added option `SearchParameters.scrolling_output` to control whether screen output scrolls on the terminal or updates in place (David Doty) [206](
- 3c1ab46: bumped version since removing `domain_names` parameter from `Strand` constructor will be a breaking change (David Doty) [206](
- faaaec3: updated docstring for scrolling_output (David Doty) [206](
- e490fdd: fixed unit tests to use `Design.add_strand` instead of Strand constructor with `domain_names` parameter (David Doty) [206](
- caabd55: fixed API calls in examples in examples folder (David Doty) [207](
- 9387ad3: fixed unit test calling Complex constructor (David Doty) [207](


- 2695bc5: removed docstring comments in m13 function that were copied from scadnano and are out of place in nuad (David Doty) [203](
- f6ba02f: Update (David Doty) [203](
- 6aef2d1: changed type of SubstringSampler.start_indices from list to tuple (David Doty) [203](
- fbd9e54: closes 201: fix protocol for choosing dependent domains to change, and independent domains to be weighted to affect change probability (David Doty) [202](
- 3bb9119: fixed bug in computation of domains intersecting strand for when strand does not cover whole domain tree (David Doty) [202](
- 1bb3116: Update (David Doty) [202](


- f0b5264: added Napoleon Sphinx extension for processing Google-style docstrings (David Doty) [198](
- 8b3fbf6: added field `SearchParameters.target_score` (David Doty) [198](
- 91a9ba7: partly addressed 191 for RNAduplex strand pairs; still need to add for other `StrandPairsConstriant`'s (David Doty) [198](
- f7cbd04: fixed None access bug (David Doty) [198](
- d550388: Update (David Doty) [198](
- 16a81c7: fixed subscripting bug where ForbiddenSubstringConstraint.substrings is specified as a set (David Doty) [200](
- ab38ee7: closes 191: pre-packaged strand pair constraints should allow threshold to depend on number of complementary domains (David Doty) [198](
- 6a965fd: Merge branch 'dev' into 191-pre-packaged-strand-pair-constraints-should-allow-threshold-to-depend-on-number-of-complementary-domains (David Doty) [198](
- d2bc378: added typing_extensions to requirements.txt (David Doty) [198](
- c579189: fixed Protocol import to try typing first, then typing_extensions if an ImportError (David Doty) [198](
- e22fddd: Update (David Doty) [198](
- d183406: Merge branch 'dev' into 197-store-domainpoolpossible_sequences-as-a-single-longer-sequence-and-substring-length (David Doty) [199](
- 1ff68d1: formatting (David Doty) [199](
- 128d161: closes 197: introduce SubstringSampler class to store DomainPool.possible_sequences as a single longer sequence and substring length (David Doty) [199](
- 92fd2a6: fixed bug with storing modifications for strands that crashed on using restart search option (David Doty) [199](
- 90ad762: added `except_overlapping_indices` parameter to `SubstringSampler` constructor (David Doty) [199](
- 8c3e38f: Update (David Doty) [199](
- 99f5ff9: bumped version (David Doty) [200](


- d61702a: Update (David Doty) [194](
- c01b683: change dsd to nuad in a few places (David Doty) [194](
- 611fa61: sleep for half a second before clearing directory to prevent file errors (David Doty) [194](
- 04d4a6a: change `nupack_strand_pair_constraint` to `nupack_strand_pairs_constraint` to be consistent with other naming conventions (David Doty) [194](
- 5e844a3: fixes 192: parallel constraints will fail on single-cpu systems (David Doty) [193](
- 3576e9f: rename packages to use n (nuad) instead of d (dsd) (David Doty) [193](
- fa50f5d: bumped version (David Doty) [194](


- 19f8acc: fixes 182: `info_log_file=True` should create output directory before opening log file (David Doty) [187](
- 1cb834d: bumped version and fixed version in doc/ to use single source of truth (nuad/ for version number (David Doty) [187](
- 13e7ce7: Merge branch 'dev' into 182-info_log_file-true-tries-to-open-log-file-before-creating-output-directory (David Doty) [187](


- a44a571: fixes 181: rna_duplex_multiple causes KeyError with parallel=True (David Doty) [184](
- 5305210: fixes 183: restart runs with different random seeds (David Doty) [185](
- cf4b363: bumped version (David Doty) [186](


- 48e1951: dsd --> nuad in index.rst (David Doty) [180](
- 2137a37: bumped version (David Doty) [180](


- d869c94: Update .readthedocs.yaml (David Doty) [178](
- 2590a32: bumped version (David Doty) [178](


- b11c646: Change sc_domain.dna_sequence() -> dna_sequence (Constantine Evans) [174](
- 937a4ec: Add include_package_data to, .par files to MANIFEST. (Constantine Evans) [176](
- 1894e58: Delete (David Doty) [177](
- 0120d38: added .readthedocs.yaml and specified custom readthedocs requirements that omit NUPACK dependency (David Doty) [177](
- 86718e1: bumped version (David Doty) [177](
- 2f83838: Update (David Doty) [177](



Has known vulnerabilities