rodrigo-arenas / pyworkforce

Standard tools for workforce management, queuing, scheduling, rostering and optimization problems.
https://pyworkforce.readthedocs.io
MIT License
73 stars 19 forks source link

Rostering Model #32

Closed rodrigo-arenas closed 2 years ago

rodrigo-arenas commented 2 years ago

This PR implements a new functionality called rostering,

This method assigns a list of resources to a list of required positions per day and shifts; it considers different restrictions such as shift bans, consecutive shifts, resting days, and others. It also introduces soft restrictions like shift preferences.

The "optimal" criterion is the minimum total scheduled hours, optionally weighted by resource shift preferences.

codecov[bot] commented 2 years ago

Codecov Report

Merging #32 (32a6fd4) into main (67cd343) will decrease coverage by 0.28%. The diff coverage is 98.94%.

@@             Coverage Diff             @@
##              main      #32      +/-   ##
===========================================
- Coverage   100.00%   99.71%   -0.29%     
===========================================
  Files           10       12       +2     
  Lines          257      352      +95     
===========================================
+ Hits           257      351      +94     
- Misses           0        1       +1     
Impacted Files Coverage Δ
pyworkforce/rostering/binary_programming.py 98.90% <98.90%> (ø)
pyworkforce/__init__.py 100.00% <100.00%> (ø)
pyworkforce/rostering/__init__.py 100.00% <100.00%> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more