Skip to content

Releases: popsim-consortium/demes-python

0.2.3

04 May 19:30
a9b0485
Compare
Choose a tag to compare

0.2.2

28 Apr 13:44
cec337a
Compare
Choose a tag to compare

Better conformance to the spec. Minor discrepancies between demes-python and the reference implementation have been resolved.

  • Dropped support for Python 3.6
    (@grahamgower, #445, #446)
  • Reject bad defaults, even if they're not used.
    (@grahamgower, #443, #430)
  • Set encoding to UTF-8 explicitly. This fixes unicode deme names on Windows.
    (@grahamgower, #430)
  • Graph.description and Deme.description can no longer be None. A missing description will now be resolved to the empty string.
    (@grahamgower, #429, #430)
  • Graph.generation_time can no longer be None. When time_units are generations, a missing generation_time will now be resolved to 1 and other values are an error.
    (@grahamgower, #429, #430)
  • Permit selfing_rate + cloning_rate >= 1. Both values must be between zero and one (inclusive), but the selfing_rate is now defined as conditional on sexual reproduction (which occurs at rate 1 - cloning_rate).
    (@grahamgower, #425, #423)

0.2.1

07 Dec 19:22
5d156c0
Compare
Choose a tag to compare

New features:

  • Support for the metadata field at the toplevel of a YAML file.
    The is a dictionary that may contain arbitrary nested data.
    (@grahamgower, #275, #392).

Bug fixes:

  • The string "Infinity" is now accepted when using load_all(),
    just like for load() and loads().
    This fixes loading fully-resolved models with the CLI.
    (@grahamgower, #394, #395).

Breaking changes:

  • The demes.hypothesis_strategies.graphs() function for generating
    a random Graph has been removed. This was buggy and not usable
    as originally intended.
    (@grahamgower, #360, #397).

0.2.0

01 Dec 13:28
4d3c3f2
Compare
Choose a tag to compare

New features:

Breaking changes:

  • A pulse event now allows for simultaneous sources and takes arguments
    sources and proportions instead of source and proportion. The
    sources and proportions must be provided as a list, even when there is
    only a single source deme.
    (@apragsdale, #353)
  • Disallow null values and blank entries in input YAML models.
    (@apragsdale, #340, #387)

Bug fixes:

0.1.2

08 Jun 13:29
7db3a05
Compare
Choose a tag to compare

New features:

  • Add Graph.migration_matrices() to get the migration matrices for a graph. (@grahamgower, #309, #320)
  • Add Deme.size_at() to get the size of a deme at a given time. (@grahamgower, #312, #314)
  • Support "linear" as an Epoch.size_function. (@noscode, #296, #310)
  • Downstream test code can now use the demes.hypothesis_strategies.graphs() hypothesis strategy to generate a random Graph. This is preliminary, and as such is not yet documented, but is used for testing internally with some success. The API may change in the future in response to requests from downstream application authors. (@grahamgower, #217, #294)
  • The string representation for a graph, Graph.__str__(), is now the simplified YAML output. (@grahamgower, #235, #293)

Breaking changes:

  • The undocumented msprime and stdpopsim converters have been removed. (@grahamgower, #313, #316)
  • The JSON spec doesn't allow serialising infinite float values (although the Python json library does support this by default). So for JSON output we instead use the string "Infinity". (@grahamgower, demes-spec#70, #311)

0.1.1

21 Apr 15:25
d04011e
Compare
Choose a tag to compare

Remove the "demes" console_scripts entry point.
This isn't documented/supported and was left in accidentally.

0.1.0

19 Apr 12:35
489a69b
Compare
Choose a tag to compare

First stable release of demes.

Breaking changes:

  • The interpretation has been changed for symmetric migrations when the
    start_time (and/or end_time) is not specified. Symmetric migrations are
    now resolved separately for each pair in the list of participating demes.
    To accommodate this semantic change, the SymmetricMigration class has
    been removed, and symmetric migrations are always resolved into pairs of
    AsymmetricMigration objects.
    (@grahamgower, #263, #268)

  • The size_function field can no longer be an arbitrary string.
    Only the "constant" and "exponential" strings are recognised.
    (#262, #278)

New features:

Bug fixes:

  • Graph.in_generations() no longer changes time values for a graph
    when time_units == "generations" and generation_time is not None.
    (@grahamgower, #273, #274)

0.1.0a4

22 Mar 14:02
9a3ed33
Compare
Choose a tag to compare
0.1.0a4 Pre-release
Pre-release

Breaking changes:

Bug fixes:

0.1.0a3

25 Feb 09:04
60a736a
Compare
Choose a tag to compare
0.1.0a3 Pre-release
Pre-release

Bug fixes:

  • Fix Graph.in_generations() to also convert the Deme.start_time field.
    Thanks to @apragsdale for reporting the problem.
    (@grahamgower, #224, #225).
  • Fix assert_close() and is_close() equality checks to compare the deme
    start_time.
    (@grahamgower, #224, #225).

Alpha release for testing.

24 Feb 14:08
c31ee9a
Compare
Choose a tag to compare
Pre-release

The API and the schema for YAML files have been largely agreed upon. Backwards-incompatible changes before the first stable release are still possible, but are considered unlikely.