Releases: virgesmith/neworder
Releases · virgesmith/neworder
Maintenance release v1.4.3
Functional changes
(none)
Other changes
- updated supported python versions
- switch to
uv
package manager for CI builds - removed unfinished/untested models
- reformatted code
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