Changelog¶
All notable changes to pylinkage are documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]¶
[0.5.2] - 2021-07-21¶
Added¶
You can see the best score and best dimensions updating in
trials_and_errors_optimization
.
Changed¶
The optimizers tests are 5 times quicker (~1 second now) and raise less false positive.
The sidebar in the documentation make navigation easier.
A bit of reorganization in optimizers, it should not affect users.
[0.5.1] - 2021-07-14¶
Added¶
The trials and errors optimization now have a progress bar (same kind of the one in particle swarm optimization), using tqdm.
Changed¶
matplotlib and tqdm now required.
[0.5.0] - 2021-07-12¶
End alpha development! The package is now robust enough to be used by a mere human. This version introduces a lot of changes and simplifications, so everything is not perfect yet, but it is complete enough to be considered a beta version.
Git tags will no longer receive a “-alpha” mention.
Added¶
It is now possible and advised to import useful functions from pylinkage.{object}, without full path. For instance, use
from pylinkage import Linkage
instead offrom pylinkage.linkage import Linkage
.Each module had his header improved.
The
generate_bounds
functions is a simple way to generate bounds before optimization.The
order_relation
arguments ofparticle_swarm_optimization
andtrials_and_errors_optimization
let you choose between maximization and minimization problem.You can specify a custom order relation with
trials_and_errors_optimization
.The
verbose
argument in optimizers can disable verbosity.Static
joints can now be defined implicitly.The
utility
module provides two useful decoratorskinematic_minimization
andkinematic_optimizatino
. They greatly simplify the workflow of defining fitness functions.Versionning is now done thanks to bump2version.
Changed¶
The
particle_swarm_optimization
eval_func
signature is now similar to the one ottrials_and_errors
optimization. Wrappers are no longer needed!The
trials_and_errors_optimization
function now asks for bounds instead of dilatation and compression factors.In
trials_and_errors_optimization
absolute stepdelta_dim
is now replaced by number of subdivisionsdivisions
.
Fixed¶
After many hours of computations, default parameters in
particle_swarm_optimization
are much more efficient. With the demofourbar_linkage
, the output wasn’t even convergent some times. Now we have a high convergence rate (~100%), and results equivalent to thetrials_and_errors_optimization
(in the example).variator
function ofoptimizer
module was poorly working.The docstrings were not displayed properly in documentation, this is fixed.
[0.4.1] - 2021-07-11¶
Added¶
The legend in
visualizer.py
is back!Documentation published to GitHub pages! It is contained in the
docs/
folder.setup.cfg
now include links to the website.
Changed¶
Examples moved from
pylinkage/examples/
todocs/examples/
.Tests moved from
pylinkage/tests/
totests/
.
[0.4.0] - 2021-07-06¶
Added¶
The
bounding_box
method of geometry allow to compute the bounding box of a finite set of 2D points.You can now customize colors of linkage’s bars with the
COLOR_SWITCHER
variable ofvisualizer.py
.movement_bounding_box
invisualizer.py
to get the bounding box of multiple loci.parameters
is optional intrials_and_errors_optimization
(formerexhaustive_optimization
)pylinkage/tests/test_optimizer.py
for testing the optimizers, but it is a bit ugly as for now.Flake8 validation in
tox.ini
Fixed¶
set_num_constraints
inLinkage
was misbehaving due to update 0.3.0.Cost history is no longer plotted automatically after a PSO.
Changed¶
exhaustive_optimization
is now known astrials_and_errors_optimizattion
.Axis on linkage visualization are now named “x” and “y”, and no longer “Points abcsices” and “Ordinates”.
A default view of the linkage is displayed in
plot_static_linkage
.Default padding in linkage representation was changed from an absolute value of 0.5 to a relative 20%.
Static view of linkage is now aligned with its kinematic one.
get_pos
method ofLinkage
is now known asget_coords
for consistency.Parameters renamed, reorganized and removed in
particle_swarm_optimization
to align to PySwarms.README.md
updated consequently to the changes.
Removed¶
Legacy built-in Particle Swarm Optimization, to avoid confusions.
We do no longer show a default legend on static representation.
[0.3.0] - 2021-07-05¶
Added¶
Joint
objects now have aget_constraints
method, consistent with theirset_constraints
one.Linkage
now has aget_num_constraints
method as synctactic sugar.Code vulnerabilities checker
Walktrough example has been expanded and now seems to be complete.
Changed¶
Linkage
’s methodset_num_constraints
behaviour changed! You should now addflat=False
to come back to the previous behaviour.pylinkage/examples/fourbar_linkage.py
expanded and finished.The
begin
parameter ofarticle_swarm_optimization
is no longer mandatory.linkage.get_num_constraints()
will be used ifbegin
is not provided.More flexible package version in
environment.yml
Output file name now is now formatted as “Kinematic {linkage.name}” in
plot_kinematic_linkage
function ofpylinkage/visualizer.py
Python 3.6 is no longer tested in
tox.ini
. Python 3.9 is now tested.
Fixed¶
When linkage animation was saved, last frames were often missing in
pylinkage/visualizer.py
, functionplot_kinematic_linkage
.
[0.2.2] - 2021-06-22¶
Added¶
More continuous integrations workflows for multiple Python versions.
Fixed¶
README.md
could not be seen in PyPi.Various types
[0.2.1] - 2021-06-16¶
Added¶
swarm_tiled_repr
function forpylinkage/visualizer.py
, for visualization of PySwarms.EXPERIMENTAL!
hyperstaticity
methodLinkage
’s hyperstaticity calculation.
Changed¶
pylinkage/exception.py
now handles exceptions in another file.Documentation improvements.
Python style improvements.
.gitignore
now modifed from the standard GitHub gitignore example for Python.
Fixed¶
circle
method ofPivot
inpylinkage/linkage.py
. was causing errorstox.ini
now fixed.
[0.2.0] - 2021-06-14¶
Added¶
pylinkage/vizualizer.py
view your linkages using matplotlib!Issue templates in
.github/ISSUE_TEMPLATE/
.github/workflows/python-package-conda.yml
: conda tests with unittest workflow.CODE_OF_CONDUCT.md
MANIFEST.in
README.md
environment.yml
setup.cfg
now replacessetup.py
tox.ini
CHANGELOG.md
Changed¶
.gitignore
Python Package specific extensions addedMIT License
→LICENSE
lib/
→pylinkage/
tests/
→pylinkage/tests/
Revamped package organization.
Cleared
setup.py
[0.0.1] - 2021-06-12¶
Added¶
lib/geometry.py
as a mathematical for kinematic optimizationlib/linkage.py
, linkage builderlib/optimizer.py
, with Particle Swarm Optimization (built-in and PySwarms), and exhaustive optimization.MIT License
.requirements.txt
.setup.py
.tests/__init__.py
.tests/test_geometry.py
.tests/test_linkage.py
..gitignore
.