Releases: virgesmith/neworder
Releases · virgesmith/neworder
Maintenance release v1.4.2
Functional changes
- add
RunState
enum - update documentation
Other changes
- Update dependencies
- Update CI: python 3.10/3.11/3.12
- linting and formatting
1.4.1
patch to fix documentation
1.4.0
Packaging changes
The package now contains the following optional dependencies/extras:
geospatial
: geospatial graph functionality based on nextworkx, osmnx, geopandas etcparallel
: MPIdev
: for local package development
which can be installed like so, e.g.
pip install neworder[parallel]
Functional changes
neworder.geospatial.GeoSpatialGraph
is now available - if thegeospatial
extra has been selected. (Previously the implementation was in an example)- Changes to the
mpi
submodule:- the functions
rank()
andsize()
are now attributes:RANK
andSIZE
. - there is a new
COMM
attribute, which is either anmpi4py.MPI.Intracomm
instance orNone
depending on whether theparallel
extra was installed.
- the functions
- In the
time
submodule, the following functions are now attributes:never()
becomesNEVER
distant_past()
becomesDISTANT_PAST
far_future()
becomesFAR_FUTURE
.
Internal changes
Model.modify()
no longer takes an integer argument. Accessneworder.mpi.RANK
from within the function.- seeder functions no longer take an integer argument. Access
neworder.mpi.RANK
from within a custom implementation function if necessary. - packaging and CI improvements
v1.3.1
Packaging changes
Conda builds are no longer supported as of this release. Conda users should use pip to install version 1.3 or higher.
Functional changes
- Custom timeline support. Users can now subclass
neworder.Timeline
to create their own timeline implementations and use them within their model. - The following timeline attributes that were methods are now properties:
at_end
,dt
,end
,index
,nsteps
,start
,time
. Although this is potentially a breaking change, it's not considered significant enough to warrant a major version bump. - The
seeder
argument to the base model constructor is now optional, and defaults toneworder.MonteCarlo.deterministic_independent_stream
.
Internal changes
- Refactoring of
Model
base class and Timelines to support custom timelines - Changes to CI workflows
Bugfixes
- Security fix for example dependencies
v1.2.1
Functional changes
- Added "infection" example to demonstrate movement on a spatial network. In order to avoid a large increase in package dependencies, the spatial domain implementation (
GeospatialGraph
) is contained within the example, not theneworder
package itself. - Improved and extended "boids" examples, now with 2d and 3d versions
- added functionality to
StateGrid
to translate positions according to the given edge behaviour - python 3.9 and below are no longer supported
Internal changes
- updates to CI
bugfixes
- fixed display issue with n-body example
v1.2.0
Functional changes
-
The neworder Monte-Carlo engine can now be used directly as a numpy random generator, giving access to all of numpy's random functionality. Create a generator via the
as_np
adapter method, e.g.:model = no.Model(no.NoTimeline(), no.MonteCarlo.deterministic_identical_stream) gen = no.as_np(model.mc) normals = gen.normal(size=100)
-
MonteCarlo.state()
method now works on OSX (was previously disabled due to an apparent bug in the MT19937 implementation).
Internal
- numerous minor updates
- use C++20 standard
v1.1.1
Functional changes
[none]
Internal
- Fix spurious MSVC17 compiler error on conda.
v1.1.0
Functional changes
- All python code, including examples, now have type annotations. Type stubs have also been generated for the core (C++) library. Your IDE should now display signatures and docstrings for each function. The API documentation on the website is now redundant and has been reomved.
- Domain edge behaviours, previously an
int
class member ofDomain
, are now an enumEdge
. e.g.neworder.Domain.WRAP
becomesneworder.Edge.WRAP
.
Examples
- The Conway example has been improved.
Internal
- Removed some deprecated function calls, e.g
DataFrame.append
. - rename
master
tomain
. - changes to CI builds.
v1.0.1
Functional changes
- add
StateGrid
class to domains
Examples
- convert Schelling example to use
StateGrid
- add Conway's game of life example that uses
StateGrid
- minor corrections to documentation
- docker container now installs neworder from package repo
Internal
- add lint (flake8) and config
v1.0.0
neworder 1.0.0
Release to coincide with publication in the Journal of Open Source Software
Breaking changes
Model.timeline
andModel.mc
are now class attributes where they were previously methods. (Change e.g.model.mc().ustream(10)
tomodel.mc.ustream(10)
)
Functional changes
- Add initial spatial domain support (
neworder.Domain
,neworder.Space
):- continuous rectangular domain in n dimensions
- domain edges can be wrapped, contrained, mirrored or unbounded
- calculate positions, distances, proximity and movement for points in the domain
- New example using the domain functionality: boids flocking
- Migrate existing examples to use new domain functionality, where appropriate
- Fixes for wolf-sheep predation example
Other
- Various minor improvements resulting from JOSS reviewer comments.
Internals
- add a virtual clone method to
Timeline
, simplifying model construction. - migration of most CI builds to github workflows.